Nginx opções de escuta duplicadas para o erro [::]: 80

5

Quando executo o comando para testar minha configuração, recebo um erro dizendo que há várias duplicatas para [::]:80 . Antes disso, tive um problema com vários servidores padrão duplicados.

Quando tive o problema com vários servidores padrão, meu arquivo ficou assim

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

Para resolver esse problema, alterei a configuração para:

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

Após a mudança, comecei a receber "opções duplicadas para o erro [::]: 80". Não tenho certeza do que estou fazendo de errado com isso. Esta é a primeira vez que trabalho com o Nginx. Alguma idéia de qual seria o problema?

    
por ztmcoder 04.04.2017 / 15:44

1 resposta

10

Estou criando uma resposta do meu comentário anterior.

Por favor, poste a mensagem de erro ( nginx -t output), pois ela pode conter algumas informações úteis.

Qual versão do nginx você está executando? A opção ipv6only=on pode não ser mais necessária e, pelo contrário, potencialmente criar problemas. Eu tenho isso no meu bloco de servidor e funciona bem:

listen 80;
listen [::]:80;

Você tem algum outro bloco de servidor que você não postou e que possa entrar em conflito um com o outro?

Explicação: vamos ler a documentação atual (1.13) nginx :

ipv6only=on|off
this parameter (0.7.42) determines (via the IPV6_V6ONLY socket option) whether an IPv6 socket listening on a wildcard address [::] will accept only IPv6 connections or both IPv6 and IPv4 connections. This parameter is turned on by default. It can only be set once on start.

Este parâmetro está ativado por padrão significa que você não deve usar ipv6only=on . Não faz nenhum bem e pode potencialmente criar problemas (veja o próximo ponto).

Só pode ser definido uma vez significa que se você tiver mais de uma vez em qualquer lugar na sua configuração (como em diferentes blocos de servidores ), ele lançará um erro: nginx: [emerg] duplicate listen options for [::]:80 .

    
por 04.04.2017 / 16:42

Tags