Как включить IPv6 в Nginx

Покажу как быстро и просто включить поддержку IPv6 в Nginx.

Допустим IPv6 адрес на сервер уже получен и имеется конфигурации нескольких сайтов в nginx:

server {
    listen 80 default_server;
    server_name ixnfo.com;
    return 301 https://$server_name:443$request_uri;
}

server {
   listen 443 ssl default_server;
...
}



server {
    listen 80;
    server_name ixnfo2.com;
    return 301 https://$server_name:443$request_uri;
}

server {
   listen 443 ssl;
...
}

Теперь чтобы nginx слушал соединения на IPv6 адресе, просто добавим в конфигурацию:

listen [::]:80;
listen [::]:443;

Например:

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name ixnfo.com;
    return 301 https://$server_name:443$request_uri;
}

server {
   listen 443 ssl default_server;
   listen [::]:443 ssl default_server;
...
}



server {
    listen 80;
    listen [::]:80;
    server_name ixnfo2.com;
    return 301 https://$server_name:443$request_uri;
}

server {
   listen 443 ssl;
   listen [::]:443 ssl;
...
}

Если что, параметр default_server указывается только для одного сайта, его нельзя указывать больше одного раза, он нужен например когда для какого-то домена нет конфигурации, тогда веб сервер будет использовать конфигурацию где default_server.

Проверим корректность конфигурации, перезапустим nginx и проверим доступность сайта по IPv6:

nginx -t
systemctl restart nginx
curl -6 http://ixnfo.com

Смотрите другие мои статьи про nginx

Оставьте комментарий

Добавить комментарий