Linux操作系统支持IP别名的添加。
配置基于IP的虚拟主机,即为Nginx服务器提供的每台虚拟主机配置一个不同的IP,因此需要将网卡设置成能够同时监听多个IP地址。
在Linux平台可以使用ifconfig工具为同一块网卡添加多个IP别名。
eth1为使用中的网卡,设其IP值为192.168.1.3。现在需要为eth1添加两个ip别名192.168.1.31 192.168.1.32,分别用于nginx服务器提供的两个虚拟主机。
命令如下:
ifconfig eth1:0 192.168.1.31 netmask 255.255.255.0 up
ifconfig eth1:1 192.168.1.32 netmask 255.255.255.0 up
命令中的up表示立即启用此别名。
此时,使用ifconfig可以看到eth1增加了两个别名,eth1:0和eth1:1
重启系统,eth1的别名就自动设置好了。
为网卡设置好别名后,就可以为Nginx服务器配置基于IP的虚拟主机了。
使用的指令和配置基于名称的虚拟主机的指令是相同的。server_name,语法结构相同,不需要考虑通配符或正则表达式的问题。
...
http{
server{ #第一台虚拟主机
listen: 80;
server_name: 192.168.1.31;
}
server{ #第二台虚拟主机
listen:80;
server_name: 192.168.1.32;
}
}
经过以上的配置,来自192.168.1.31的前端请求将由第一台虚拟主机接收和处理,来自192.168.1.32的前端请求将由第二台虚拟主机接收和处理。