Prawdopodobnie jest to jedyny powód, dla którego używałbyś obecnie tego konstruktu.
Powodem tego jest prawdopodobnie domyślna ipv6onlyzmiana 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 ipv6onlysystem 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 ipv6onlyzestawu, to znaczy:
listen [::]:80;
listen 80;