在我的Ubuntu 12.04的nginx(1.4.2)设置中,我只设置了一个configuration文件(我删除/禁用了其他的):
server { listen [::]:80 default_server; location / { root /home/lwood/websites/default/public; } }
我重新启动了nginx。
为什么nginx不接受IPv4连接? 这里是文档
http://wiki.nginx.org/HttpCoreModule#listen
他们提到这一点
在Linux中默认情况下,任何IPv6 TCP套接字也接受IPv4stream量…运行时参数:net.ipv6.bindv6only默认值为0。
我已经检查了与sysctl ,bindv6only确实设置为0.所以我的IPv6侦听指令也应该接受IPv4,对吧?
我一定是误解了文档。 一个解释将不胜感激。
这个wiki已经过时了。 如实际文档中所述on自nginx 1.3.4以来, ipv6only的默认值是on 。 如果你省略参数,那么nginx将只绑定到IPv6。 操作系统设置从不使用。