Das wahrscheinlich ist so ziemlich der einzige Grund , warum Sie das ehemalige Konstrukt verwenden würde, in diesen Tagen.
Der Grund, warum Sie dies sehen, ist wahrscheinlich, dass sich die Standardeinstellung ipv6only
in nginx 1.3.4 geändert hat. Zuvor war standardmäßig Folgendes eingestellt off
: In neueren Versionen ist der Standardwert on
.
Dies geschieht mit der Socket-Option IPV6_V6ONLY unter Linux und ähnlichen Optionen unter anderen Betriebssystemen, deren Standardeinstellungen nicht unbedingt vorhersehbar sind. Daher war das vorherige Konstrukt vor 1.3.4 erforderlich, um sicherzustellen, dass Sie tatsächlich auf IPv4- und IPv6-Verbindungen warteten.
Die Änderung der Nginx-Standardeinstellung für ipv6only
stellt sicher, dass die Betriebssystem-Standardeinstellung für Dual-Stack-Sockets irrelevant ist. Nun bindet nginx entweder explizit an IPv4, IPv6 oder beides, je nach Betriebssystem jedoch nie, um standardmäßig einen Dual-Stack-Socket zu erstellen.
In der Tat haben meine Standard-Nginx-Konfigurationen vor 1.3.4 die erste Konfiguration und nach 1.3.4 alle die zweite Konfiguration.
Da das Binden eines Dual-Stack-Sockets nur unter Linux möglich ist, sehen meine aktuellen Konfigurationen jetzt eher wie das erste Beispiel aus, jedoch ohne ipv6only
Satz:
listen [::]:80;
listen 80;