В моей настройке nginx (1.4.2) на Ubuntu 12.04 я установил только один файл конфигурации (остальные я удалил / отключил):
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, верно?
Я, должно быть, неправильно понял документы. Объяснение будет оценено.
Вики устарела. Как указано в в актуальный документация, значение по умолчанию для ipv6only
является on
начиная с nginx 1.3.4. Если вы опустите параметр, то nginx будет связываться только с IPv6. Настройки ОС никогда не используются.