C'est probablement la seule raison pour laquelle vous utiliseriez la première construction, de nos jours.
La raison pour laquelle vous voyez cela est probablement que la valeur par défaut de ipv6only
a changé dans nginx 1.3.4. Avant cela, elle était par défaut à off
; dans les nouvelles versions, elle est par défaut à on
.
Ceci interagit avec l'option de socket IPV6_V6ONLY sous Linux, et des options similaires sur d'autres systèmes d'exploitation, dont les valeurs par défaut ne sont pas nécessairement prévisibles. Ainsi, la première construction était nécessaire avant la version 1.3.4 pour s'assurer que vous écoutiez effectivement les connexions sur IPv4 et IPv6.
Le changement de la valeur par défaut de nginx pour ipv6only
fait en sorte que la valeur par défaut du système d'exploitation pour les sockets double pile est sans importance. Maintenant, nginx se lie explicitement à IPv4, IPv6 ou les deux, sans jamais dépendre du système d'exploitation pour créer un socket double pile par défaut.
En effet, mes configurations standard de nginx pour les versions antérieures à 1.3.4 ont la première configuration, et pour les versions postérieures à 1.3.4, elles ont toutes la deuxième configuration.
Cependant, puisque la liaison d'un socket double pile est spécifique à Linux, mes configurations actuelles ressemblent plus à la première exemple, mais sans l'option ipv6only
définie, à savoir:
listen [::]:80;
listen 80;
0 votes
Deffered n'a rien à voir avec la version de la pile IP, c'est une option TCP.
1 votes
Bien sûr, mais vous le définissez dans les directives
listen
, et les options sont appliquées par paire hôte:port.0 votes
I- Je ne peux vraiment pas imaginer un cas où vous voudriez faire cela. Je pense que la seule raison est historique et Michael Hampton l'a cloué.