Поддержка IPv6

К сожалению, при настройке поддержки IPv6 в nginx на ОС Linux можно столкнуться с неочевидностью настройки. Скажем, тот факт, что директива “listen 80” означает лишь порт 80 IPv4, мало кого способен обрадовать. Поддержка IPv6 достигается за счёт комбинирования двух директив listen в рамках каждого виртуального узла. При этом в настройках виртуального узла по умолчанию, как оказалось, нужно писать одно, а в настройках остальных виртуальных узлов — немного другое.

# для виртуального узла по умолчанию
listen 80 default_server;
listen [::]:80 default ipv6only=on;
# для остальных виртуальных узлов
listen 80;
listen [::]:80;

Этого же можно добиться, установив ядерную опцию net.ipv6.bindv6only в значение 1 и настроив сервер уже более очевидным образом.

2 комментария: Поддержка IPv6

  1. Joker говорит:

    Простите, а разве не это написано в официальной документации Игоря? Пора читать внимательнее.

    • WST говорит:

      Может быть и описано, а может быть и не было написано на момент написания этой статьи (а было это довольно давно), да и статья несёт справочный характер, так как вопрос об IPv6 мне приходилось слышать от друзей и коллег как минимум дважды. Большая часть статей по администрированию на этом сайте нацелена на то, чтобы простым образом описать готовые решения различных проблем и ссылаться на эти статьи в качестве ответа на вопросы.

Добавить комментарий для Joker Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>