Linux下nginx单ip多虚拟主机
- 虚拟主机
- 2025-07-21
- 8
Linux下使用Nginx实现单IP多虚拟主机,可以通过多种方式实现,以下是详细说明:
基于端口的虚拟主机配置
添加多个端口监听
在nginx.conf文件中,可以为不同的虚拟主机配置不同的端口。

通过这种方式,用户可以通过http://example.com:80和http://example.com:8080访问不同的虚拟主机。
修改防火墙规则
确保防火墙允许这些端口的访问:
sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload
基于域名的虚拟主机配置
修改本地hosts文件
在/etc/hosts文件中添加多个域名指向同一个IP地址:

0.0.1 example1.com 127.0.0.1 example2.com
配置Nginx
在nginx.conf中为每个域名配置一个server块:
server { listen 80; server_name example1.com; location / { root /var/www/example1; index index.html; } } server { listen 80; server_name example2.com; location / { root /var/www/example2; index index.html; } }
这样,用户可以通过http://example1.com和http://example2.com访问不同的虚拟主机。
基于IP地址的虚拟主机配置
添加多个IP地址
为网络接口添加多个IP地址:
sudo ifconfig eth0:1 192.168.1.100 netmask 255.255.255.0 sudo ifconfig eth0:2 192.168.1.101 netmask 255.255.255.0
配置Nginx
在nginx.conf中为每个IP地址配置一个server块:
server { listen 192.168.1.100:80; location / { root /var/www/ip1; index index.html; } } server { listen 192.168.1.101:80; location / { root /var/www/ip2; index index.html; } }
这样,用户可以通过http://192.168.1.100和http://192.168.1.101访问不同的虚拟主机。
常见问题与解答
| 问题 | 解答 |
|---|---|
| 如何测试Nginx配置是否正确? | 可以使用以下命令测试Nginx配置语法是否正确: sudo nginx -t 如果输出显示syntax is ok和test is successful,则表示配置正确。 |
| 如何重启Nginx服务? | 可以使用以下命令重启Nginx服务: sudo systemctl restart nginx 或者使用以下命令重新加载配置而不中断服务: `sudo |
