在阿里云ECS上部署两个不同的网站,可以通过以下几种常见方案实现:
方案一:单ECS多端口(适用于测试/简单场景)
-
安装Web服务器(以Nginx为例):
sudo apt update && sudo apt install nginx # Ubuntu/Debian sudo yum install nginx -y # CentOS -
配置两个站点:
-
创建两个独立的配置文件(如
/etc/nginx/conf.d/site1.conf和site2.conf):# site1.conf(监听80端口) server { listen 80; server_name www.site1.com; # 或ECS公网IP root /var/www/site1; index index.html; } # site2.conf(监听8080端口) server { listen 8080; server_name www.site2.com; # 或ECS公网IP:8080 root /var/www/site2; index index.html; }
-
-
创建网站目录并放置文件:
sudo mkdir -p /var/www/{site1,site2} echo "Site1 Content" > /var/www/site1/index.html echo "Site2 Content" > /var/www/site2/index.html -
重启Nginx:
sudo nginx -t && sudo systemctl restart nginx -
安全组配置:
- 在阿里云ECS控制台的安全组中,放行 80和8080端口。
方案二:单ECS单端口,通过域名区分(推荐生产环境)
-
准备两个域名(如
www.site1.com和www.site2.com),并解析到ECS的公网IP。 -
配置Nginx虚拟主机:
# site1.conf server { listen 80; server_name www.site1.com; root /var/www/site1; index index.html; } # site2.conf server { listen 80; server_name www.site2.com; root /var/www/site2; index index.html; } -
重启Nginx后,通过不同域名访问即可。
方案三:使用Docker容器隔离
-
安装Docker:
curl -fsSL https://get.docker.com | bash -
为每个网站创建独立容器:
# 运行两个Nginx容器,映射不同端口 docker run -d --name site1 -p 80:80 -v /path/to/site1:/usr/share/nginx/html nginx docker run -d --name site2 -p 8080:80 -v /path/to/site2:/usr/share/nginx/html nginx
方案四:使用反向XX(适用于动态网站)
若网站为Python/Node.js/PHP等动态应用:
- 分别运行两个应用在不同端口(如3000、3001)。
- 用Nginx反向XX到不同域名:
server { listen 80; server_name www.site1.com; location / { proxy_pass http://localhost:3000; } }
关键步骤总结
- 服务器配置:安装Web服务器(Nginx/Apache)。
- 目录隔离:为每个网站创建独立根目录。
- 配置分离:每个站点使用独立的配置文件。
- 域名与DNS:绑定域名并解析到ECS IP。
- 安全组:开放对应端口(80/443/自定义端口)。
- HTTPS支持:如需SSL,可申请免费证书(如Let’s Encrypt)并配置到Nginx。
注意事项
- 资源隔离:若网站流量较大,建议使用不同ECS实例或容器隔离。
- 备案:若域名指向中国大陆的ECS,需完成ICP备案。
- 性能监控:通过阿里云云监控观察资源使用情况。
根据需求选择方案,推荐方案二(域名区分)用于生产环境,结构清晰且便于管理。
CLOUD技术笔记