Ubuntu
為什麼這個 IPv6 監聽指令也不接受 IPv4?
在 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,對吧?我一定是誤解了文件。解釋將不勝感激。
wiki 已經過時了。如實際文件中所指定,預設為
ipv6only
自on
nginx 1.3.4 以來。如果省略該參數,則 nginx 將僅綁定到 IPv6。從不使用作業系統設置。