Prawdopodobnie jest to jedyny powód, dla którego używałbyś obecnie tego konstruktu.
Powodem tego jest prawdopodobnie domyślna ipv6only
zmiana w Nginx 1.3.4. Wcześniej domyślnie było off
; w nowszych wersjach domyślnie jest to on
.
Zdarza się to w interakcji z opcją gniazda IPV6_V6ONLY w systemie Linux i podobnymi opcjami w innych systemach operacyjnych, których ustawienia domyślne niekoniecznie są przewidywalne. Tak więc poprzednia konstrukcja była wymagana przed wersją 1.3.4, aby upewnić się, że faktycznie nasłuchujesz połączeń zarówno na IPv4, jak i IPv6.
Zmiana wartości domyślnej na nginx dla powoduje, że domyślny ipv6only
system operacyjny dla gniazd z dwoma stosami nie ma znaczenia. Teraz nginx albo jawnie wiąże się z IPv4, IPv6, albo z obydwoma, nigdy domyślnie w zależności od systemu operacyjnego, aby utworzyć gniazdo z dwoma stosami.
Rzeczywiście, moje standardowe konfiguracje nginx dla wersji wcześniejszej niż 1.3.4 mają pierwszą konfigurację, a wszystkie po wersji 1.3.4 mają drugą konfigurację.
Chociaż, ponieważ wiązanie gniazda podwójnego stosu jest kwestią wyłącznie Linuksa, moje obecne konfiguracje wyglądają teraz bardziej jak pierwszy przykład, ale bez ipv6only
zestawu, to znaczy:
listen [::]:80;
listen 80;