在阿里云轻量应用服务器(Lightweight Application Server)上部署多个项目是完全可行的,尽管它资源有限(如单个公网 IP、默认只开放部分端口),但通过合理配置,可以高效运行多个 Web 应用。以下是几种常见且实用的方法:
✅ 方法一:使用 Nginx 反向X_X + 多端口部署(推荐)
这是最常见、最灵活的方式,适用于多个 Web 项目(如 Node.js、Python Flask、Java Spring Boot 等)。
步骤如下:
-
为每个项目分配不同端口
- 项目 A:运行在
3000端口(如 Node.js 项目) - 项目 B:运行在
5000端口(如 Python Flask 项目) - 项目 C:运行在
8080端口(如 Java 项目)
- 项目 A:运行在
-
在轻量服务器上安装 Nginx
# Ubuntu/Debian
sudo apt update
sudo apt install nginx -y
- 配置 Nginx 反向X_X
创建多个配置文件,或在 /etc/nginx/sites-available/ 下配置:
示例:配置项目 A(example1.com)
server {
listen 80;
server_name example1.com www.example1.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
示例:配置项目 B(example2.com)
server {
listen 80;
server_name example2.com www.example2.com;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
- 启用站点并重启 Nginx
# 创建软链接到 sites-enabled
sudo ln -s /etc/nginx/sites-available/example1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example2 /etc/nginx/sites-enabled/
# 测试配置
sudo nginx -t
# 重启 Nginx
sudo systemctl restart nginx
-
域名解析
- 将
example1.com和example2.com的 A 记录指向你的轻量服务器公网 IP。
- 将
-
开放防火墙端口
- 轻量服务器默认只开放 80、443、22 等端口。
- 如果项目监听非标准端口(如 3000、5000),需在 阿里云控制台 的 防火墙规则 中手动添加入方向规则,允许这些端口(但 Nginx 反向X_X后,外部只需访问 80/443,内部端口无需对外开放)。
✅ 方法二:使用子路径部署(单域名下多个项目)
适用于共用一个域名,通过路径区分项目。
示例:
example.com/app1→ 项目 A(Node.js)example.com/app2→ 项目 B(Python)
Nginx 配置示例:
server {
listen 80;
server_name example.com;
location /app1/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
location /app2/ {
proxy_pass http://127.0.0.1:5000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
⚠️ 注意:后端应用需支持子路径(如静态资源路径、路由前缀等)。
✅ 方法三:使用 Docker 部署(推荐用于复杂项目)
通过 Docker 容器隔离多个项目,更易于管理。
示例:
# 项目 A
docker run -d -p 3000:3000 --name project-a your-node-app
# 项目 B
docker run -d -p 5000:5000 --name project-b your-flask-app
然后用 Nginx 反向X_X这些容器(同方法一)。
✅ 方法四:HTTPS 部署(配合 SSL 证书)
使用 Let’s Encrypt 免费证书:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example1.com -d example2.com
Nginx 会自动配置 HTTPS 并重定向 HTTP → HTTPS。
🛠️ 注意事项
-
资源限制
轻量服务器配置较低(如 1C2G),运行多个项目时注意内存和 CPU 使用,避免 OOM。 -
防火墙配置
在阿里云控制台的 轻量服务器管理页面 → 防火墙 中,确保开放了必要的端口(如 80、443、22),内部服务端口(如 3000)无需开放给公网。 -
进程守护
使用pm2(Node.js)、supervisor(Python)、systemd等工具守护进程,防止崩溃。 -
日志管理
各项目日志分开存储,便于排查问题。
✅ 总结
| 方法 | 适用场景 | 是否推荐 |
|---|---|---|
| Nginx 反向X_X + 多端口 | 多个独立网站 | ✅ 强烈推荐 |
| 子路径X_X | 同一域名下多个应用 | ✅ 推荐 |
| Docker + Nginx | 项目较多、环境复杂 | ✅ 推荐 |
| 直接绑定不同 IP | 不适用(轻量服务器通常只有 1 个公网 IP) | ❌ 不可行 |
如有具体项目类型(如 Vue + Node.js + Python),可提供更详细部署方案。欢迎继续提问!
CDNK博客