LINUX.ORG.RU

[nginx] --with-ipv6

 


0

1

Теперь, с IPv6 нельзя повешать на один IP несколько хостов, как это можно делать с IPv4?

простой пример, как делал обычно:

server { listen 80; server_name example.com } # для редиректа на www.
server { listen 80; server_name www.example.com } # "нормальный" сайт
server { listen 80 default_server; } # для всего остального
по-умолчанию просто listen 80 не слушает ipv6, и обязательно пишем [::], окей:
server { listen [::]:80; server_name example.com } # для редиректа на www.
server { listen [::]:80; server_name www.example.com } # "нормальный" сайт
server { listen [::]:80 default_server; } # для всего остального
но - не работает. Вот элементаро, listen 0.0.0.0:80 разрешает слушать сколько угодно раз в server { }, а listen [::]:80 всего один раз в server, а потом ошибка.

это получается, что для каждого хоста, любого, даже алиаса домена (с www. и без него) по смыслу, придется выделять целый IPv6 адрес? не баг ли это? IPv6 конечно не жалко, но это просто неудобство, когда суть - для одного и того же адреса, прописывать еще один ip в днс...

★★★★★

А вообще, как конфиг полностью выглядит?

jessey
()
Ответ на: комментарий от jessey

Для меня редирект на домен «с www» принципиален, а также в документации написано, что if использовать не рекомендуется. И поэтому и для «с www» и «без www» - два разных server:

  server {
    listen 80;
    server_name example.com;
    
    rewrite ^/(.*)$ http://www.example.com/$1 permanent;
  }

  server {
    listen 80;
    server_name www.example.com;
    
    root /var/www/example.com/public;
    index index.html index.htm;
  }

И это не решает проблему невозможности использовать один ipv6, т.к. еще остается default_server для «остальных» «сайтов». Но спасибо.

Spoofing ★★★★★
() автор топика
Ответ на: комментарий от Spoofing

Я нашёл пока только такой вариант:

listen   80; ## listen for ipv4; this line is default and implied
listen   [::]:80 default ipv6only=on; ## listen for ipv6
То есть, нужно прописать два listen. По идее, это позволит слушать и ipv4 и ipv6 протоколы. Похоже на костыль, но люди говорят что работает.

jessey
()
Ответ на: комментарий от jessey

Не костыль, но не работает. Читайте первое сообщение ;)

Spoofing ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.