上一篇
Linux下nginx单ip多虚拟主机
- 虚拟主机
- 2025-07-21
- 2683
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 |