Lorsque j'exécute la commande pour tester ma configuration, j'obtiens une erreur indiquant qu'il existe plusieurs doublons pour [::]:80
. Avant cela, j'ai eu un problème avec plusieurs serveurs par défaut en double.
Quand j'ai eu le problème avec plusieurs serveurs par défaut, mon fichier ressemblait à ceci
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
server_name munki;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /report {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location /munki_repo/ {
alias /usr/local/munki_repo/;
autoindex off;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Pour résoudre ce problème, j'ai changé la configuration en:
server {
listen 80;
listen [::]:80 ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
server_name munki;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location /report {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location /munki_repo/ {
alias /usr/local/munki_repo/;
autoindex off;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
Après le changement, j'ai commencé à obtenir une erreur "Options en double pour [::]: 80". Je ne sais pas ce que je fais mal avec cela. C'est la première fois que je travaille avec Nginx. Des idées sur le problème?
nginx -t
sortie). Quelle version de nginx utilisez-vous?ipv6only=on
pourrait ne plus être nécessaire. J'ai ceci dans mon bloc serveur:listen 80;listen [::]:80;
et ça fonctionne bien. Avez-vous d'autres blocs serveur?Réponses:
Je crée une réponse à partir de mon commentaire précédent.
Veuillez poster le message d'erreur (
nginx -t
sortie) car il pourrait contenir des informations utiles.Quelle version de nginx utilisez-vous? L'option
ipv6only=on
pourrait ne plus être nécessaire et au contraire potentiellement créer des problèmes. J'ai ceci dans mon bloc serveur et ça fonctionne bien:Avez-vous d'autres blocs serveur que vous n'avez pas publiés qui pourraient éventuellement entrer en conflit les uns avec les autres?
Explication: Lisons le courant (1,13) nginx documentation :
Ce paramètre est activé par défaut signifie que vous ne devez pas l'utiliser
ipv6only=on
. Il ne fait aucun bien et peut potentiellement créer des problèmes (voir point suivant).Il ne peut être réglé une fois signifie que si vous avez plus d'une fois partout dans votre configuration (exemple dans différents blocs de serveur), il renvoie une erreur:
nginx: [emerg] duplicate listen options for [::]:80
.la source