在阿里云轻量应用服务器上部署多个项目是完全可行的,虽然轻量应用服务器资源相对有限(如1核2G或2核4G),但通过合理的配置和使用反向X_X(如 Nginx),可以高效地运行多个 Web 项目。以下是详细的部署方法:
✅ 一、准备工作
-
购买并登录轻量应用服务器
- 登录阿里云控制台 → 轻量应用服务器 → 创建实例(推荐选择 Ubuntu/CentOS 系统)。
- 获取公网 IP 地址。
-
开放端口
- 在轻量服务器控制台的安全组中,确保以下端口已开放:
80(HTTP)443(HTTPS)22(SSH)- 其他自定义端口(如 3000、5000 等)
- 在轻量服务器控制台的安全组中,确保以下端口已开放:
✅ 二、部署多个项目的思路
方案:使用 Nginx 反向X_X + 不同端口/域名区分项目
- 每个项目运行在不同的本地端口(如 3000、5000、8080)。
- 使用 Nginx 将不同域名或路径反向X_X到对应端口。
- 推荐每个项目使用独立的子域名(如
api.example.com,admin.example.com)。
✅ 三、具体步骤
1. 安装 Nginx
# Ubuntu/Debian
sudo apt update
sudo apt install nginx -y
# CentOS
sudo yum install nginx -y
sudo systemctl start nginx
sudo systemctl enable nginx
2. 部署多个项目(以 Node.js 和 Python Flask 为例)
示例项目 1:Node.js 应用(监听 3000 端口)
cd /var/www/project1
npm install
nohup node app.js > app.log 2>&1 &
确保 app.js 监听 localhost:3000。
示例项目 2:Flask 应用(监听 5000 端口)
cd /var/www/project2
python3 app.py # app.py 监听 127.0.0.1:5000
建议使用
pm2或supervisor管理进程,保证后台运行。
3. 配置 Nginx 反向X_X
创建两个配置文件(或一个文件内多个 server 块):
配置项目1(example.com)
# /etc/nginx/sites-available/project1
server {
listen 80;
server_name example.com www.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
}
}
配置项目2(admin.example.com)
# /etc/nginx/sites-available/project2
server {
listen 80;
server_name admin.example.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;
}
}
启用站点(Ubuntu 为例)
sudo ln -s /etc/nginx/sites-available/project1 /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/project2 /etc/nginx/sites-enabled/
# 删除默认站点(可选)
sudo rm /etc/nginx/sites-enabled/default
# 测试配置并重启
sudo nginx -t
sudo systemctl reload nginx
4. 域名解析(DNS 设置)
- 将
example.com和admin.example.com解析到轻量服务器的公网 IP。 - 可在阿里云域名控制台添加 A 记录。
5. (可选)配置 HTTPS(免费 SSL 证书)
使用 Let’s Encrypt + Certbot:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
sudo certbot --nginx -d admin.example.com
Certbot 会自动修改 Nginx 配置启用 HTTPS。
✅ 四、其他建议
| 项目 | 推荐方式 |
|---|---|
| 进程管理 | 使用 pm2 (Node.js)、supervisor (Python) |
| 日志查看 | tail -f /var/log/nginx/access.log |
| 资源监控 | htop、df -h |
| 多项目隔离 | 使用 Docker(进阶推荐) |
✅ 五、进阶方案:使用 Docker 部署(更清晰)
# docker-compose.yml
version: '3'
services:
frontend:
image: nginx
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
app1:
build: ./project1
ports:
- "3000"
app2:
build: ./project2
ports:
- "5000"
然后在 Nginx 中X_X到 app1:3000、app2:5000。
更适合复杂项目,避免端口冲突。
✅ 总结
| 方法 | 优点 | 适用场景 |
|---|---|---|
| Nginx 反向X_X + 多端口 | 简单易行 | 小型多项目 |
| 子域名区分 | 用户体验好 | 多个独立服务 |
| Docker 部署 | 隔离性好 | 中大型项目 |
✅ 只要合理分配资源、使用 Nginx 分流,阿里云轻量应用服务器完全可以稳定运行多个项目!
如果你告诉我你具体想部署什么类型项目(如 Vue + Spring Boot + MySQL),我可以给出更具体的部署方案。
CLOUD技术博