一台云服务器如何搭建两个网站?
结论: 通过配置虚拟主机(Virtual Host)或使用反向X_X(如Nginx),可以在一台云服务器上同时运行多个网站。核心步骤包括域名解析、Web服务器配置和资源隔离。
方法一:使用虚拟主机(Apache/Nginx)
适用于需要独立域名且资源隔离的场景,以下是具体步骤:
1. 准备工作
- 域名解析:将两个域名(如
site1.com
和site2.com
)的A记录指向服务器的公网IP。 - 服务器环境:确保已安装Web服务器(如Apache或Nginx)和PHP/数据库等依赖。
2. Apache配置(基于NameVirtualHost)
- 修改Apache主配置文件(
httpd.conf
或apache2.conf
),启用虚拟主机:NameVirtualHost *:80
- 为每个网站创建独立的配置文件(如
/etc/apache2/sites-available/site1.conf
):<VirtualHost *:80> ServerName site1.com DocumentRoot /var/www/site1 <Directory /var/www/site1> AllowOverride All Require all granted </Directory> </VirtualHost>
- 重复上述步骤配置
site2.com
,并重启Apache:sudo a2ensite site1.conf site2.conf sudo systemctl restart apache2
3. Nginx配置(基于Server Blocks)
- 在
/etc/nginx/sites-available/
下为每个网站创建配置(如site1.conf
):server { listen 80; server_name site1.com; root /var/www/site1; index index.html index.php; }
- 创建符号链接并重启Nginx:
sudo ln -s /etc/nginx/sites-available/site1.conf /etc/nginx/sites-enabled/ sudo systemctl restart nginx
方法二:使用反向X_X(如Nginx)
适用于不同端口或后端服务的场景,例如一个网站运行在3000端口,另一个在5000端口。
1. 配置Nginx反向X_X
编辑Nginx配置文件,将不同域名X_X到不同端口:
server {
listen 80;
server_name site1.com;
location / {
proxy_pass http://localhost:3000;
}
}
server {
listen 80;
server_name site2.com;
location / {
proxy_pass http://localhost:5000;
}
}
2. 启动后端服务
确保两个网站的后端服务(如Node.js、Python)分别运行在3000和5000端口。
关键注意事项
- 资源隔离:避免两个网站占用过多CPU/内存,可通过Docker或cgroups限制资源。
- HTTPS支持:使用Let’s Encrypt为每个域名申请SSL证书。
- 日志分离:为每个网站配置独立的访问日志和错误日志。
总结:
- 虚拟主机适合静态网站或PHP应用,反向X_X适合动态服务(如Node.js)。
- 核心要点是正确绑定域名、配置Web服务器,并确保服务互不冲突。