Nginx, ipv6 и виртуальные хосты
Пару лет назад думал что настроил на вэб сервере поддержку ipv6, все онлайн тесты проходили на ура. Но сейчас, настроив у себя ipv6, понял что при обращении к сайтам получаю в ответ “403 Forbidden”. Не приятно конечно, но надо что-то делать. Тогда, при настройке, была информация что нужно добавлять в конфиг сервера запись вида 1 listen [::]:80 ipv6only=on; при чём если её добавлять в несколько виртуальных серверов, то nginx выкидывал ошибку. Пришёл к выводу что достаточно одной директивы в конфиге по умолчанию. Ошибался. В общем смысл таков: В конфиге по умолчанию должно быть прописано 1 2 listen 80 default_server; listen [::]:80 default_server ipv6only=on; а в конфигах каждого виртуального хоста прописываем 1 2 listen 80; listen [::]:80; Таким образом все сайты работают с ipv4 и ipv6. Если поддержка ipv6 для сайта не нужна, то строку 1 listen [::]:80; прописывать не нужно! А ошибку “403 Forbidden” получал из-за того, что у меня хост по умолчанию её отдаёт для всех желающих ломиться по IP, или подбирать поддомены.