在阿里云服务器(ECS)上部署多个 Web 服务,通常可以通过以下几种方式来实现。以下是详细的步骤和建议:
✅ 前提条件
- 已购买并配置好阿里云 ECS 实例
- 安装好了操作系统(如 CentOS、Ubuntu、Windows Server 等)
- 已开放对应端口(如80、443、8080等)在 安全组规则 中
- 拥有公网 IP 或者已经绑定弹性公网 IP(EIP)
📌 部署多个 Web 服务的常见方法
方法一:使用不同端口运行多个服务
示例:
- 服务A:监听
80 - 服务B:监听
8080 - 服务C:监听
8081
步骤:
- 在服务器上分别启动多个 Web 应用,监听不同的端口。
- 在阿里云控制台的安全组中开放这些端口。
- 用户通过访问
http://公网IP:端口号来访问不同服务。
⚠️ 缺点:用户需要记住不同端口号,不太友好。
方法二:使用 Nginx/Apache 反向X_X + 虚拟主机(推荐)
示例:
- 服务A:域名
a.example.com - 服务B:域名
b.example.com
步骤:
1. 安装 Nginx(以 CentOS 为例):
sudo yum install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx
2. 配置 Nginx 虚拟主机
编辑 Nginx 配置文件,添加两个 server 块:
# /etc/nginx/conf.d/a.conf
server {
listen 80;
server_name a.example.com;
location / {
proxy_pass http://127.0.0.1:3000; # Node.js 服务运行在 3000 端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
# /etc/nginx/conf.d/b.conf
server {
listen 80;
server_name b.example.com;
location / {
proxy_pass http://127.0.0.1:8080; # Java Spring Boot 运行在 8080
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
3. 检查并重启 Nginx:
sudo nginx -t
sudo systemctl reload nginx
4. 配置 DNS 解析
- 将
a.example.com和b.example.com解析到你的 ECS 公网 IP 地址。
✅ 优点:所有服务都通过 80/443 访问,用户体验更好;方便做 HTTPS、负载均衡等。
方法三:使用 Docker 部署多个容器(适合微服务架构)
示例:
- 使用 Docker Compose 启动多个服务,每个服务监听不同端口,由 Nginx 统一反代。
1. 创建 docker-compose.yml 文件:
version: '3'
services:
web1:
image: your-web1-image
ports:
- "3000:3000"
web2:
image: your-web2-image
ports:
- "8080:8080"
nginx:
image: nginx
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
2. 配置 Nginx 的虚拟主机映射
类似上面的方法二。
方法四:使用二级路径(Path Based Routing)
适用于同一个域名下根据路径分发请求:
location /app1/ {
proxy_pass http://localhost:3000/;
}
location /app2/ {
proxy_pass http://localhost:8080/;
}
访问示例:
http://example.com/app1/http://example.com/app2/
🔐 HTTPS 支持(可选但推荐)
可以使用 Let’s Encrypt 免费证书或阿里云 SSL 证书服务为每个域名启用 HTTPS:
sudo yum install certbot python3-certbot-nginx
sudo certbot --nginx -d a.example.com
🧪 测试与验证
- 使用
curl或浏览器测试各个服务是否能正常访问。 - 查看日志:
/var/log/nginx/access.log和/var/log/nginx/error.log
✅ 总结
| 方法 | 特点 | 推荐程度 |
|---|---|---|
| 不同端口 | 简单直接,但不友好 | ⭐⭐ |
| Nginx 反向X_X | 多域名支持,统一入口 | ⭐⭐⭐⭐⭐ |
| Docker + Nginx | 高度隔离、易于扩展 | ⭐⭐⭐⭐ |
| Path Based | 同一个域名下的多服务 | ⭐⭐⭐ |
如果你告诉我你具体要部署的服务类型(如 Node.js、Python Flask、Java Spring Boot、WordPress 等),我可以给出更具体的部署指导!
是否需要我提供某个服务的具体部署脚本?
云计算导航