Це, мабуть , стосується єдиної причини, по якій ти сьогодні використовуєш колишню конструкцію.
Причина, з якою ви це бачите, - це, ймовірно, у тому, що типова ipv6only
зміна в nginx 1.3.4. До цього вона дефолт off
; у нових версіях він за замовчуванням on
.
Це трапляється при взаємодії з параметром сокета IPV6_V6ONLY в Linux та аналогічними параметрами в інших операційних системах, які за замовчуванням не обов’язково передбачувані. Таким чином, попередній конструкт вимагав попередньої версії 1.3.4, щоб переконатися, що ви насправді прослуховували з'єднання як IPv4, так і IPv6.
Зміна за замовчуванням nginx для ipv6only
гарантує, що за замовчуванням операційної системи для подвійних гнізд стека немає значення. Тепер nginx або явно пов'язується з IPv4, IPv6 або обома, ніколи не залежно від ОС для створення подвійного пакета стека за замовчуванням.
Дійсно, мої стандартні конфігурації nginx для попереднього 1.3.4 мають першу конфігурацію, а після-1.3.4 - другу.
Хоча, оскільки прив’язка подвійного стека до гнізда є єдиною справою для Linux, теперішні мої конфігурації зараз схожі на перший приклад, але без ipv6only
набору, на кмітливість:
listen [::]:80;
listen 80;