Acabei de passar por isso com uma atualização de 1.0 para 1.4.
Como apenas um único ouvinte está realmente vinculado a qualquer porta, basta especificar ipv6only=off
em qualquer um de suas listen
diretivas.
Então, no meu bloco server
padrão, eu tenho:
listen [::]:80 ipv6only=off default_server;
e
listen [::]:443 ipv6only=off default_server;
Todos os outros blocos server
simplesmente especificam as diretivas listen
originais. E isso funciona; qualquer host virtual pode ser acessado via IPv4 ou IPv6.
Você também pode adicioná-lo a todos deles, mas isso não é realmente necessário. Adicioná-lo a qualquer um deles é suficiente.
No entanto, como o sinalizador ipv6only=
é somente Linux, não uso mais essa construção. Minhas diretivas atuais especificam IPv4 e IPv6 explicitamente, como:
listen [::]:80 default_server;
listen 80 default_server;