如果一台机器有多个网卡,每个网卡有一个ip,那么,80端口的数量可以跟ip数量一致。
假设一台机器有3个ip,分别是:
192.168.1.101
192.168.1.102
192.168.1.103
我们可以通过分别对3个ip进行80端口绑定,比方说在nginx中:
server {
listen 192.168.1.101:80;
server_name _;
}
server {
listen 192.168.1.102:80;
server_name _;
}
server {
listen 192.168.1.103:80;
server_name _;
}
启动nginx,并通过以下命令查看:
netstat -ano
会得到以下结果:
[root@bogon conf]# netstat -ano
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State Timer
tcp 0 0 192.168.1.101:80 0.0.0.0:* LISTEN off (0.00/0/0)
tcp 0 0 192.168.1.102:80 0.0.0.0:* LISTEN off (0.00/0/0)
tcp 0 0 192.168.1.103:80 0.0.0.0:* LISTEN off (0.00/0/0)
接下来测试下,通过三个ip访问服务器,都可以成功访问到内容。
当然,如果你觉得这样分别绑定ip很麻烦,假如多加了网卡或者减少网卡,岂不是又要改配置了?那就来写更简单的配置吧:
server {
listen 0.0.0.0:80;
server_name _;
}
或者:
server {
listen 80;
server_name _;
}
以上方式可以直接绑定本机的所有ip派生出来的80端口:
通过netstat命令可以看到:
[root@bogon conf]# netstat -ano
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State Timer
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN off (0.00/0/0)
这个时候只看到0.0.0.0被绑定了,一旦在这台机器上任意一个ip的80端口有访问,就会派生出连接记录,如下:
[root@bogon conf]# netstat -ano
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State Timer
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN off (0.00/0/0)
tcp 0 0 192.168.1.101:80 192.168.1.110:54284 ESTABLISHED off (0.00/0/0)
tcp 0 0 192.168.1.103:80 192.168.1.110:54271 ESTABLISHED off (0.00/0/0)
tcp 0 0 192.168.1.102:80 192.168.1.110:54285 ESTABLISHED off (0.00/0/0)
tcp 0 0 192.168.1.103:80 192.168.1.110:54272 ESTABLISHED off (0.00/0/0)
tcp 0 0 192.168.1.103:80 192.168.1.110:54287 ESTABLISHED off (0.00/0/0)
很有意思吧!
原文地址:http://www.zingscript.com/post/190