Я использую nginx 1.4.1 (сейчас, до 1.2.1) и хотел бы поддерживать двойной стек (IPv4 и IPv6). Я всегда получаю duplicate listen options for xyz
ошибки от nginx.
server {
listen 80 default_server;
listen [::]:80 ipv6only=on default_server;
server_name domain1;
}
server {
listen 443 ssl default_server;
listen [::]:443 ssl ipv6only=on default_server;
server_name domain1;
}
server {
listen 80;
listen [::]:80 ipv6only=on;
server_name domain2;
}
server {
listen 443 ssl;
listen [::]:443 ssl ipv6only=on;
server_name domain2;
}
Если я использую только listen 80
Я получаю только IPv4. В противном случае, если я использую listen [::]:80
Получаю только IPv6.
Как настроить nginx 1.4.x для поддержки двойного стека виртуального хоста?
Вы использовали (Или вы это делали, пока не отредактировали эту часть.)default_server
более чем в одном server
блок. Это предназначено только для использования для определения виртуального хоста по умолчанию для данной комбинации IP-адреса / порта. Таким образом, он должен появляться только один раз для каждой пары IP / порт во всей вашей конфигурации. Какой хост должен быть виртуальным хостом по умолчанию, решать вам.
Также, ipv6only
может появляться только один раз во всей конфигурации. Поскольку по умолчанию в 1.4 и выше он on
, вы можете полностью опустить его.