Erro nginx "conflitante nome do servidor" ignorado [fechado]

125
server {
    #listen   80; ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default ipv6only=on; ## listen for ipv6

    #root /usr/share/nginx/www;

root /home/ubuntu/node-login;
    # Make site accessible from 
    server_name ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.com;

location /{
    proxy_pass http://127.0.0.1:8000/;
    proxy_redirect off;
}

}

isso resulta em erro nignx [aviso] conflitante nome do servidor "ec2 ..." em 0.0.0.0:80 ignorado Eu não entendo, qualquer explicação apreciada. Obrigado.

user1447121
fonte
Parece haver um padrão implícito 0.0.0.0:80, adicionando-o explicitamente funcionou para mim. ouça ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.com:80; seguido pela diretiva server_name funcionou.
user1447121
1
Verifique se /etc/nginx/sites-available/<site-name>está vinculado a /etc/nginx/sites-enabled/<site-name>. Os arquivos adicionais aqui podem conter configurações duplicadas ou conflitantes.
Hanxue
mudando config.force_ssl = truepara falseresolver o meu problema, isso me levou dias para descobrir
Muyide Ibukun
1
Para mim, esse mesmo erro foi causado por um ponto e vírgula ausente no final de uma das server_namelinhas, quando eu tinha várias serverentradas.
24419 Kevin
2
O Certbot da LetsEncrypt havia adicionado um bloco de servidor no arquivo padrão no meu caso. Foi por isso que tentei obter o certificado antes de configurar o bloco de servidor separado.
Alex D

Respostas:

162

Presumo que você esteja executando um Linux e usando o gEdit para editar seus arquivos. No /etc/nginx/sites-enabled, pode ter deixado um arquivo temporário, por exemplo default~(assista ao ~).

Dependendo do seu editor, o arquivo pode ser nomeado .saveou algo parecido. Simplesmente corra $ ls -lahpara ver quais arquivos não estão lá e remova-os (obrigado @Tisch por isso).

Exclua este arquivo e ele resolverá o seu problema.

Omar Al-Ithawi
fonte
corrigiu o problema para mim no Ubuntu 12.04 x86_64 + nginx
Stephen Sprinkle
1
você pode esclarecer? Não vejo nenhum arquivo "padrão ~" no meu / etc / nginx / sites ativado apenas na pasta "padrão".
David Saintloth
3
@Jakobud in /etc/nginx/sites-enabled. Eu editei minha resposta para mencioná-la.
Omar Al-Ithawi
3
Eu tinha um arquivo .save que estava causando o problema.
Tisch
2
No meu caso, algumas configurações do emacs criaram um arquivo com um inicial e um final #, por exemplo #portal#.
Taffit
31

Você tem outro server_name ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.comem algum lugar na configuração.

VBart
fonte
2
Eu verifiquei isso e não encontrei nenhum. não dá esse aviso quando eu removo o "ec2_xxx ...". Existe um padrão implícito para 0.0.0.0:80 na configuração do nginx?
user1447121
Documentação oficial :default: listen *:80 | *:8000;
VBart
2
Era isso para mim, como era localhost.
Rohmer
12

Deve haver apenas um host local definido, verifique sites-enabled ou nginx.conf.

Marin
fonte
8
Eu tinha duas diretivas "server_name" idênticas em dois arquivos * .conf separados. Obrigado.
Felipe Alvarez
1
Isso resolveu meu problema também. Eu coloquei 2 mesmos blocos de servidor em diferentes arquivos * .conf. Obrigado!
Pranav Jituri
1
Além disso, verificar todos os arquivos neste diretório: /etc/nginx/conf.d. Cada domínio também pode aparecer apenas uma vez (como servernamevalor) entre os arquivos desse diretório. Esse foi o meu problema!
SherylHohman