Questo è probabilmente l'unico motivo per cui potresti usare il precedente costrutto, in questi giorni.
La ragione per cui stai vedendo questo è probabilmente che il valore predefinito è ipv6only
cambiato in nginx 1.3.4. Prima di ciò, è fallito off
; nelle nuove versioni di default on
.
Questo accade interagire con l'opzione socket IPV6_V6ONLY su Linux e opzioni simili su altri sistemi operativi, i cui valori predefiniti non sono necessariamente prevedibili. Pertanto, prima del 1.3.4 era richiesto il costrutto precedente per assicurarsi che si stessero effettivamente ascoltando le connessioni su IPv4 e IPv6.
La modifica del valore predefinito di nginx ipv6only
garantisce che il valore predefinito del sistema operativo per socket dual stack sia irrilevante. Ora, nginx si collega esplicitamente a IPv4, IPv6 o entrambi, senza mai dipendere dal sistema operativo per creare un socket dual stack per impostazione predefinita.
In effetti, le mie configurazioni standard nginx per la pre-1.3.4 hanno la prima configurazione e tutte le post-1.3.4 hanno la seconda configurazione.
Tuttavia, poiché associare un socket dual stack è una cosa solo per Linux, le mie configurazioni attuali ora assomigliano più al primo esempio, ma senza ipv6only
set, per intenderci:
listen [::]:80;
listen 80;