如何在一台服务器上配置多个网站?详细步骤与实用教程指南
- 互联网
- 2026-02-11
- 2587
要在服务器上配置两个或更多网站,通常通过虚拟主机(Virtual Host)实现,以下是基于主流Web服务器(Apache和Nginx)的详细步骤:
Apache 服务器配置多网站
创建网站目录
sudo mkdir -p /var/www/site1/public_html sudo mkdir -p /var/www/site2/public_html sudo chown -R $USER:$USER /var/www/site1/public_html sudo chown -R $USER:$USER /var/www/site2/public_html
创建测试页面
echo "<h1>Site 1 Works!</h1>" > /var/www/site1/public_html/index.html echo "<h1>Site 2 Works!</h1>" > /var/www/site2/public_html/index.html
配置虚拟主机
-
创建配置文件:
sudo nano /etc/apache2/sites-available/site1.conf sudo nano /etc/apache2/sites-available/site2.conf -
site1.conf 内容:
<VirtualHost *:80> ServerName site1.com ServerAlias www.site1.com DocumentRoot /var/www/site1/public_html ErrorLog ${APACHE_LOG_DIR}/site1_error.log CustomLog ${APACHE_LOG_DIR}/site1_access.log combined </VirtualHost> -
site2.conf 内容(修改 ServerName 和路径):
<VirtualHost *:80> ServerName site2.com DocumentRoot /var/www/site2/public_html # 其他配置同上 </VirtualHost>
启用站点并重载配置
sudo a2ensite site1.conf sudo a2ensite site2.conf sudo systemctl reload apache2
本地测试(可选)
编辑 /etc/hosts 添加临时DNS解析:
0.0.1 site1.com 127.0.0.1 site2.com
Nginx 服务器配置多网站
创建网站目录(同Apache)
sudo mkdir -p /var/www/site1/public_html sudo mkdir -p /var/www/site2/public_html
配置虚拟主机
-
创建配置文件:

-
site1 内容:
server { listen 80; server_name site1.com www.site1.com; root /var/www/site1/public_html; index index.html; location / { try_files $uri $uri/ =404; } } -
site2 内容(修改 server_name 和路径):
server { listen 80; server_name site2.com; root /var/www/site2/public_html; # 其他配置同上 }
-
域名解析
- 确保域名已解析到服务器IP(通过DNS管理平台设置A记录)。
- 本地测试可修改 /etc/hosts 临时绑定。
-
防火墙设置
开放HTTP/HTTPS端口:
sudo ufw allow 80/tcp # HTTP sudo ufw allow 443/tcp # HTTPS
-
HTTPS 支持
使用 Let’s Encrypt 免费证书:
sudo certbot --apache # Apache sudo certbot --nginx # Nginx
-
资源隔离
- 对高负载网站,建议分配独立用户权限。
- 使用 chroot 或容器化(Docker)增强隔离性。
-
日志管理
定期清理日志(如配置 logrotate)。
- 403 Forbidden:检查目录权限和所有权。
- 404 Not Found:确认 DocumentRoot 路径正确。
- 端口冲突:确保无其他进程占用80/443端口(sudo lsof -i :80)。
- 配置语法错误:
- Apache:sudo apache2ctl configtest
- Nginx:sudo nginx -t
常见问题排查
通过以上步骤,您可以在单台服务器上高效托管多个网站,根据实际需求调整配置(如负载均衡、缓存等)以优化性能。
启用站点并重载配置
sudo ln -s /etc/nginx/sites-available/site1 /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/site2 /etc/nginx/sites-enabled/ sudo nginx -t # 测试配置 sudo systemctl reload nginx
关键注意事项