在阿里云服务器(ECS)上部署多个网站可以通过以下几种常见方法实现,具体选择取决于你的技术栈和需求:
方法1:基于域名的虚拟主机(Nginx/Apache)
适用场景:多个域名指向同一台服务器,通过不同域名区分网站。
步骤(以Nginx为例):
-
绑定域名
- 在阿里云域名控制台将多个域名解析到服务器的公网IP。
- 确保服务器安全组放行80(HTTP)和443(HTTPS)端口。
-
配置Nginx虚拟主机
在/etc/nginx/conf.d/下为每个网站创建独立的配置文件(如site1.conf、site2.conf):# site1.conf server { listen 80; server_name www.site1.com site1.com; root /var/www/site1; index index.html; # 其他配置(如PHP支持、SSL等) } # site2.conf server { listen 80; server_name www.site2.com site2.com; root /var/www/site2; index index.html; } -
重启Nginx
sudo nginx -t # 测试配置 sudo systemctl restart nginx
方法2:使用不同端口号
适用场景:临时测试或无法使用域名时。
步骤:
- 修改Web服务器配置,监听不同端口(如8080、8081):
server { listen 8080; server_name localhost; root /var/www/site1; } - 访问时通过
http://服务器IP:8080和http://服务器IP:8081区分。
方法3:容器化部署(Docker)
适用场景:需要隔离环境或动态扩展。
步骤:
- 为每个网站创建独立的Docker容器,映射不同端口或使用反向X_X(如Nginx):
docker run -d --name site1 -p 8080:80 -v /path/to/site1:/usr/share/nginx/html nginx docker run -d --name site2 -p 8081:80 -v /path/to/site2:/usr/share/nginx/html nginx - 通过Nginx反向X_X统一对外暴露80/443端口(类似方法1)。
方法4:使用应用托管服务(如宝塔面板)
适用场景:新手友好,图形化操作。
步骤:
- 安装宝塔面板:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh - 在面板中添加多个站点,自动生成Nginx/Apache配置。
方法5:后端语言的多应用部署
- Node.js:使用PM2管理多个应用,分配不同端口。
- Python(Django/Flask):通过Gunicorn/UWSGI搭配Nginx反向X_X。
- Java:部署多个WAR包到Tomcat,通过不同路径区分。
关键注意事项
- 资源隔离:确保每个网站的资源(CPU/内存)不会相互影响,可设置限制(如Docker资源限制)。
- SSL证书:若需HTTPS,为每个域名申请证书(可使用Let’s Encrypt免费证书)。
- 日志管理:为每个网站配置独立的访问日志和错误日志。
- 数据库隔离:建议每个网站使用独立的数据库或前缀区分表。
示例流程(Nginx + PHP)
- 创建网站目录:
mkdir -p /var/www/{site1,site2} - 上传网站代码到对应目录。
- 配置Nginx并重启服务(如方法1)。
- 测试访问各域名是否正常。
通过以上方法,你可以灵活地在单台阿里云ECS上托管多个网站。
云服务器