在 Ubuntu 12.04 上的 nginx(1.4.2)设置中,我只设置了一配置文件(我删除/禁用了其他文件):
server {
listen [::]:80 default_server;
location / {
root /home/lwood/websites/default/public;
}
}
我已经重新启动了 nginx。
为什么 nginx 不接受 IPv4 连接?请参阅文档
http://wiki.nginx.org/HttpCoreModule#listen
他们提到
在 Linux 中,默认情况下任何 IPv6 TCP 套接字也接受 IPv4 流量...运行时参数:net.ipv6.bindv6only 的默认值为 0。
我已经检查过sysctl
,bindv6only 确实设置为 0。所以我的 IPv6 监听指令也应该接受 IPv4,对吗?
我肯定误解了文档。如能解释一下我将不胜感激。
答案1
维基百科已过时。如这实际的文档,从 nginx 1.3.4 开始,默认为ipv6only
。on
如果省略该参数,则 nginx 将仅绑定到 IPv6。操作系统设置永远不会使用。