在阿里云轻量应用服务器(Lightweight Application Server)上部署多个 Web 项目是完全可行的,虽然它不像 ECS 那样灵活支持自定义 VPC 和复杂网络配置,但通过合理配置 Nginx、端口映射或反向X_X等方式,可以轻松实现多站点共存。
以下是几种常见的部署方案:
✅ 方案一:使用 Nginx 反向X_X + 多端口运行(推荐)
原理:
- 每个 Web 项目运行在不同的本地端口(如 3000、3001、8080 等)
- 使用 Nginx 作为反向X_X,根据域名将请求转发到对应的服务
- 支持多个域名绑定,实现“一个 IP 托管多个网站”
步骤:
-
购买并配置多个域名(可选通配符)
- 如:
site1.com、site2.com - 将域名 A 记录解析到轻量服务器公网 IP
- 如:
-
安装 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 -
启动多个 Web 服务(Node.js 示例)
- 项目1:监听
3000cd /var/www/site1 node app.js # 监听 3000 端口 - 项目2:监听
3001cd /var/www/site2 node app.js # 监听 3001 端口
推荐使用 PM2 守护进程管理 Node 服务:
npm install -g pm2 pm2 start app.js --name "site1" -- --port 3000 pm2 startup && pm2 save - 项目1:监听
-
配置 Nginx 虚拟主机
创建两个配置文件:
/etc/nginx/sites-available/site1.com
server { listen 80; server_name site1.com www.site1.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; } }/etc/nginx/sites-available/site2.com
server { listen 80; server_name site2.com www.site2.com; location / { proxy_pass http://127.0.0.1:3001; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } -
启用站点
sudo ln -s /etc/nginx/sites-available/site1.com /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/site2.com /etc/nginx/sites-enabled/ # 删除默认站点(如有) sudo rm /etc/nginx/sites-enabled/default # 测试配置并重启 sudo nginx -t sudo systemctl restart nginx -
开放防火墙端口
- 轻量服务器后台安全组:放行
80(HTTP)、443(HTTPS) - 系统防火墙(如有):确保允许 80/443
- 轻量服务器后台安全组:放行
-
(可选)配置 HTTPS(Let's Encrypt)
使用 Certbot 自动申请免费 SSL 证书:sudo apt install certbot python3-certbot-nginx -y sudo certbot --nginx -d site1.com -d www.site1.com
✅ 方案二:基于不同端口直接访问(简单但不美观)
- 项目1:
http://your-ip:3000 - 项目2:
http://your-ip:3001 - 不需要 Nginx,适合测试或内部使用
缺点:URL 包含端口号,不专业;不利于 SEO
✅ 方案三:使用 Docker 部署多个容器(高级)
- 安装 Docker
- 为每个项目编写
Dockerfile或使用镜像 - 使用
docker-compose.yml统一管理多个服务 + Nginx 反向X_X
示例 docker-compose.yml 片段:
version: '3'
services:
site1:
image: my-site1
ports:
- "3000:3000"
site2:
image: my-site2
ports:
- "3001:3001"
nginx:
image: nginx
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
⚠️ 注意事项
-
资源限制
轻量服务器配置较低(如 2核2G),建议项目不多于 3~5 个,避免内存不足。 -
安全组设置
在阿里云控制台 → 轻量服务器 → 防火墙,放行80、443端口。 -
域名备案(国内服务器)
如果服务器位于我国大陆,必须对域名进行 ICP 备案才能访问。 -
自动启动脚本
使用systemd或pm2 startup确保服务重启后自动运行。
✅ 总结
| 方案 | 是否推荐 | 适用场景 |
|---|---|---|
| Nginx 反向X_X + 域名 | ✅ 强烈推荐 | 多个正式网站上线 |
| 直接用端口访问 | ⚠️ 仅测试 | 内部测试、临时演示 |
| Docker 部署 | ✅ 推荐 | 项目较多、便于维护 |
如果你提供具体的技术栈(如:Vue + Node、Java Spring Boot、Python Flask 等),我可以给出更详细的部署命令和配置模板。
需要我帮你写一份完整的 Nginx + PM2 部署脚本吗?
CLOUD云计算