在轻量级服务器上部署两个网站可以通过多种方式实现,具体取决于服务器配置和需求。以下是几种常见的方法及详细步骤:
方法1:基于端口的虚拟主机(适合测试环境)
原理:通过不同端口(如80、8080)区分两个网站。
步骤:
-
准备网站目录
mkdir -p /var/www/site1 /var/www/site2 echo "Site 1" > /var/www/site1/index.html echo "Site 2" > /var/www/site2/index.html -
配置Web服务器(以Nginx为例)
编辑配置文件(如/etc/nginx/conf.d/site1.conf和site2.conf):# site1.conf(监听80端口) server { listen 80; server_name _; root /var/www/site1; index index.html; } # site2.conf(监听8080端口) server { listen 8080; server_name _; root /var/www/site2; index index.html; } -
重启Nginx
sudo systemctl restart nginx -
访问测试
- 网站1:
http://服务器IP:80 - 网站2:
http://服务器IP:8080
- 网站1:
方法2:基于域名的虚拟主机(推荐生产环境)
原理:通过不同域名(如 site1.com 和 site2.com)指向同一服务器,Web服务器根据域名分发请求。
步骤:
-
域名解析
将两个域名解析到服务器的公网IP(DNS A记录)。 -
配置Nginx
创建两个独立的配置文件(如/etc/nginx/conf.d/site1.conf和site2.conf):# site1.conf server { listen 80; server_name site1.com www.site1.com; root /var/www/site1; index index.html; } # site2.conf server { listen 80; server_name site2.com www.site2.com; root /var/www/site2; index index.html; } -
重启Nginx
sudo systemctl restart nginx -
访问测试
- 网站1:
http://site1.com - 网站2:
http://site2.com
- 网站1:
方法3:使用反向X_X(适合动态应用)
场景:若两个网站是不同的后端服务(如Node.js、Python应用)。
步骤(以Nginx为例):
-
启动后端服务
假设网站1运行在3000端口,网站2运行在4000端口。 -
配置Nginx反向X_X
# site1.conf server { listen 80; server_name site1.com; location / { proxy_pass http://localhost:3000; } } # site2.conf server { listen 80; server_name site2.com; location / { proxy_pass http://localhost:4000; } } -
重启Nginx
sudo systemctl restart nginx
方法4:使用Docker容器(隔离环境)
优势:每个网站运行在独立的容器中,避免环境冲突。
步骤:
-
安装Docker
curl -fsSL https://get.docker.com | sh -
启动两个Nginx容器
docker run -d -p 80:80 -v /var/www/site1:/usr/share/nginx/html --name site1 nginx docker run -d -p 8080:80 -v /var/www/site2:/usr/share/nginx/html --name site2 nginx -
访问测试
- 网站1:
http://服务器IP:80 - 网站2:
http://服务器IP:8080
- 网站1:
注意事项
- 防火墙:确保开放相关端口(如80、443、8080)。
sudo ufw allow 80/tcp sudo ufw allow 443/tcp - HTTPS支持:使用Let’s Encrypt为域名免费配置SSL证书。
sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d site1.com -d site2.com - 资源限制:轻量级服务器需监控资源使用(CPU、内存),避免超负荷。
总结
- 测试环境:用端口区分(方法1)或Docker(方法4)。
- 生产环境:推荐基于域名的虚拟主机(方法2)或反向X_X(方法3)。
- 高隔离需求:选择Docker或虚拟机。
根据实际需求选择最适合的方案即可!
云服务器