前言
Nginx 的虚拟主机功能允许单个 Nginx 服务器为多个域名或 IP 地址提供服务,无需为每个域名运行单独的 Nginx 实例。这篇文章介绍如何配置基于域名和基于 IP 的虚拟主机。
创建项目路径
1 2 3 4 5 6 7
| mkdir -p /var/www/site1 mkdir -p /var/www/site2
echo "<h1>Welcome to Site1</h1>" > /var/www/site1/index.html echo "<h1>Welcome to Site2</h1>" > /var/www/site2/index.html
|
配置虚拟主机
基于域名的虚拟主机
编辑 Nginx 配置文件 /etc/nginx/nginx.conf 或创建单独的配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13
| server { listen 80; server_name site1.example.com; root /var/www/site1; index index.html; }
server { listen 80; server_name site2.example.com; root /var/www/site2; index index.html; }
|
基于端口的虚拟主机
1 2 3 4 5 6 7 8 9 10 11 12 13
| server { listen 8080; server_name localhost; root /var/www/site1; index index.html; }
server { listen 8081; server_name localhost; root /var/www/site2; index index.html; }
|
重启 Nginx
1 2 3 4 5
| nginx -t
systemctl restart nginx
|
本地测试
在本地 /etc/hosts 文件中添加域名映射:
1 2
| 127.0.0.1 site1.example.com 127.0.0.1 site2.example.com
|
然后访问 http://site1.example.com 和 http://site2.example.com 即可看到不同的页面。
常见问题
❌ 403 Forbidden
原因:Nginx 没有权限访问目录。
解决:
1 2
| chmod -R 755 /var/www/site1 chown -R nginx:nginx /var/www/site1
|
❌ 502 Bad Gateway
原因:后端服务未启动或配置错误。
解决:检查 proxy_pass 或 fastcgi_pass 配置是否正确。
以上就是 Nginx 虚拟主机配置的全部内容。