Множество server { listen } с одним IPv6
Spoofing
nginx-forum на nginx.us
Чт Мар 15 07:50:20 UTC 2012
Теперь, с 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 { }, а потом ошибка:
2012/03/14 19:22:12 [emerg] 18692#0: bind() to [::]:80 failed (98:
Address already in use)
это получается, что для каждого хоста,
любого, даже алиаса домена (с www. и без
него) по смыслу, придется выделять
целый IPv6 адрес? не баг ли это? IPv6 конечно
не жалко, но это просто неудобство,
когда суть - для одного и того же адреса,
прописывать еще один ip в днс...
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,223863,223863#msg-223863
Подробная информация о списке рассылки nginx-ru