上一篇                     
               
			  Linux下nginx单ip多虚拟主机
- 虚拟主机
- 2025-07-21
- 2594
 Linux下,通过为网络设备添加别名绑定多个IP,并在nginx配置中添加多个server{}标签,可实现nginx单IP多虚拟主机
 
Linux下使用Nginx实现单IP多虚拟主机,可以通过多种方式实现,以下是详细说明:
基于端口的虚拟主机配置
添加多个端口监听
在nginx.conf文件中,可以为不同的虚拟主机配置不同的端口。
server {
    listen 80;
    server_name example.com;
    location / {
        root /var/www/example;
        index index.html;
    }
}
server {
    listen 8080;
    server_name example.com;
    location / {
        root /var/www/example2;
        index index.html;
    }
} 
通过这种方式,用户可以通过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 | 
 
  
			