Пару лет назад думал что настроил на вэб сервере поддержку 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, или подбирать поддомены.