Opzioni di ascolto duplicate di Nginx per errore [::]: 80


12

Quando eseguo il comando per testare la mia configurazione, viene visualizzato un errore che indica che ci sono più duplicati per [::]:80. Prima di allora ho avuto un problema con più server predefiniti duplicati.

Quando ho avuto il problema con più server predefiniti, il mio file sembrava così

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;
    }
}

Per risolvere il problema, ho modificato la configurazione in:

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;
    }
}

Dopo la modifica ho iniziato a ricevere un errore "Opzioni duplicate per [::]: 80". Non sono sicuro di cosa sto facendo di sbagliato in questo. Questa è la prima volta che lavoro con Nginx. Qualche idea su quale potrebbe essere il problema?


Si prega di inviare il messaggio di errore ( nginx -toutput). Quale versione di nginx stai eseguendo? ipv6only=onpotrebbe non essere più necessario. Ho questo nel mio blocco server: listen 80;listen [::]:80;e funziona bene. Hai altri blocchi server?
simlev

Ha funzionato quello che hai suggerito Grazie! Non ci avrei mai pensato.
ztmcoder

Risposte:


27

Sto creando una risposta dal mio commento precedente.

Si prega di inviare il messaggio di errore ( nginx -toutput) in quanto potrebbe contenere alcune informazioni utili.

Quale versione di nginx stai eseguendo? L'opzione ipv6only=onpotrebbe non essere più necessaria e, al contrario, potrebbe creare problemi. Ho questo nel mio blocco server e funziona bene:

listen 80;
listen [::]:80;

Hai altri blocchi server che non hai pubblicato che potrebbero essere in conflitto tra loro?


Spiegazione: leggiamo la documentazione nginx corrente (1.13) :

ipv6only=on|off
questo parametro (0.7.42) determina (tramite l' IPV6_V6ONLYopzione socket) se un socket IPv6 in ascolto su un indirizzo jolly [::] accetta solo connessioni IPv6 o connessioni sia IPv6 che IPv4. Questo parametro è attivato per impostazione predefinita. Può essere impostato solo una volta all'avvio.

Questo parametro è attivato per impostazione predefinita , pertanto non è necessario utilizzarloipv6only=on. Non fa nulla di buono e può potenzialmente creare problemi (vedi punto successivo).

Può essere impostato solo una volta significa che se avete più di una volta ovunque nella configurazione (ad esempio, in blocchi di server diversi), si genera un errore:nginx: [emerg] duplicate listen options for [::]:80.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.