Provavelmente, esse é o único motivo pelo qual você usaria a construção anterior atualmente.
A razão pela qual você está vendo isso provavelmente é que o padrão foi ipv6only
alterado no nginx 1.3.4. Antes disso, o padrão era off
; nas versões mais recentes, o padrão é on
.
Isso acontece ao interagir com a opção de soquete IPV6_V6ONLY no Linux e opções semelhantes em outros sistemas operacionais, cujos padrões não são necessariamente previsíveis. Portanto, a construção anterior era necessária antes da 1.3.4 para garantir que você realmente estivesse ouvindo conexões no IPv4 e no IPv6.
A alteração no padrão nginx para ipv6only
garante que o padrão do sistema operacional para soquetes de pilha dupla seja irrelevante. Agora, o nginx se liga explicitamente ao IPv4, IPv6 ou a ambos, nunca dependendo do sistema operacional para criar um soquete de pilha dupla por padrão.
De fato, minhas configurações padrão do nginx para pré-1.3.4 têm a primeira configuração e pós-1.3.4 têm a segunda configuração.
Porém, como vincular um soquete de pilha dupla é apenas para Linux, minhas configurações atuais agora se parecem mais com o primeiro exemplo, mas sem ipv6only
definir, com a saber:
listen [::]:80;
listen 80;