当前位置:首页 > 虚拟主机 > 正文

Linux下nginx单ip多虚拟主机

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:80http://example.com:8080访问不同的虚拟主机。

Linux下nginx单ip多虚拟主机  第1张

修改防火墙规则

确保防火墙允许这些端口的访问:

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.comhttp://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.100http://192.168.1.101访问不同的虚拟主机。

常见问题与解答

问题 解答
如何测试Nginx配置是否正确? 可以使用以下命令测试Nginx配置语法是否正确:
sudo nginx -t
如果输出显示syntax is oktest is successful,则表示配置正确。
如何重启Nginx服务? 可以使用以下命令重启Nginx服务:
sudo systemctl restart nginx
或者使用以下命令重新加载配置而不中断服务:
`sudo
0