Como fazer dual stack IPv4 / IPv6 com hosts virtuais no nginx 1.4

3

Estou usando o nginx 1.4.1 (agora, antes de ser 1.2.1) e gostaria de oferecer suporte a dual stack (IPv4 e IPv6). Estou sempre recebendo duplicate listen options for xyz erros do 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;
}

Se eu usar apenas listen 80 , só receberei o IPv4. Caso contrário, se eu usar listen [::]:80 , estou recebendo apenas o IPv6.

Como configurar o nginx 1.4.x para suportar a pilha dupla do host virtual?

    
por burnersk 01.09.2013 / 20:36

1 resposta

7

Você usou default_server em mais de um bloco server . Isso serve apenas para definir o host virtual padrão para uma determinada combinação de endereço IP / porta. Por isso, deve aparecer apenas uma vez por par IP / porta em toda a sua configuração. Qual host deve ser o host virtual padrão depende de você. (Ou você fez, até que você editou esta parte.)

Além disso, ipv6only pode aparecer apenas uma vez em toda a configuração. Como seu padrão em 1.4 e superior é on , você pode omiti-lo completamente.

    
por 01.09.2013 / 20:44