[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: config' simplissime de nginx



Le 13/05/2013 11:23, Raphaël POITEVIN a écrit :
Jean-Marc <jean-marc@6jf.be> writes:

Le soucis vient du fichier de config' sites-enabled/default qui spécifie les directives listen suivantes :
	listen 80;
	listen [::]:80 default_server;

Or, suivant la doc' nginx (http://wiki.nginx.org/HttpCoreModule#listen),
" When you enable the address [::]:80, binding port 80 using IPv6, in the listen directive, in Linux, by default, the IPv4 port 80 is also enabled. Meaning that nginx listens for both IPv4 and IPv6 incoming traffic. Therefore if you erroneously specify also a IPv4 address you'll get an already bind address error when reloading nginx configuration."

En clair, si nginx écoute sur le port 80 en IPv6, il le fera aussi par défaut sur le port 80 IPv4.  Et spécifier les deux conduit à une erreur au chargement.

Et si je supprime la directive "liste 80;", nginx démarre.

La séparation IPv4 et v6 est possible via sysctl net.ipv6.bindv6only mais la valeur par défaut indique de ne pas séparer l'IPv4 et v6.

Donc, la config' livrée avec nginx ne fonctionne pas.

Elle marchait avant, c'est suite à une mise à jour, je ne sais laquelle
car, j'ai fais longtemps des mises à jours sans redémarrer nginx ;
j'avais rencontré le pb suite à un redémarrage de la machine que j'ai
résolu en effet comme toi.

Bonsoir,

depuis la version 1.4.0 (et je ne sais plus quelle version de développement 1.3.x), il faut _explicitement_ indiquer à nginx d'écouter sur la couche IPv4 de l'interface sinon aucune connexion IPv4 ne sera possible. La séparation IPv4 - IPv6 se fait directement dans la configuration du logiciel et non plus via un appel au noyau.
Le wiki n'est pas à jour ceci dit.

Donc pour nginx 1.4.0 et ultérieur :
   listen 80;
   listen [::]:80;
dans votre fichier de configuration kivabien sans quoi, si comme moi votre FAI est resté bloqué sur IPv4, une mise à jour de nginx pourra rendre votre site a priori *complètement* inaccessible même si ce n'est pas le cas.


Reply to: