Erreur nginx "nom de serveur en conflit" ignoré [fermé]


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

}

cela se traduit par une erreur nignx [avertir] nom de serveur en conflit "ec2 ..." sur 0.0.0.0:80 ignoré Je ne comprends pas, toute explication appréciée. Merci.


Il semble y avoir une valeur implicite par défaut 0.0.0.0:80, l'ajoutant explicitement a fonctionné pour moi. écoutez ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.com:80; suivi de la directive nom_serveur a fonctionné.
user1447121

1
Vérifiez /etc/nginx/sites-available/<site-name>qu'il est lié à /etc/nginx/sites-enabled/<site-name>. Les fichiers supplémentaires ici peuvent contenir une configuration en double ou en conflit.
Hanxue

changer config.force_ssl = truepour falserésoudre mon problème, cela m'a pris des jours pour comprendre
Muyide Ibukun

1
Pour moi, cette même erreur provenait d'un point-virgule manquant à la fin d'une des server_namelignes alors que j'avais plusieurs serverentrées.
Kevin

2
Certbot de LetsEncrypt avait ajouté un bloc de serveur dans le fichier par défaut dans mon cas. Cela a fait que j'ai essayé d'obtenir le certificat avant d'avoir configuré le bloc serveur séparé.
Alex D

Réponses:


162

Je suppose que vous utilisez un Linux et que vous utilisez gEdit pour éditer vos fichiers. Dans le /etc/nginx/sites-enabled, il peut avoir laissé un fichier temporaire par exemple default~(regardez le ~).

Selon votre éditeur, le fichier peut être nommé .saveou quelque chose comme ça. Exécutez simplement $ ls -lahpour voir quels fichiers ne sont pas censés être là et supprimez-les (merci @Tisch pour cela).

Supprimez ce fichier et cela résoudra votre problème.


a corrigé le problème pour moi sur Ubuntu 12.04 x86_64 + nginx
Stephen Sprinkle

1
Pouvez-vous clarifier? Je ne vois aucun fichier "default ~" dans mon dossier / etc / nginx / sites-enabled uniquement dans le dossier "default".
David Saintloth

3
@Jakobud dans /etc/nginx/sites-enabled. J'ai édité ma réponse pour la mentionner.
Omar Al-Ithawi

3
J'avais un fichier .save qui causait le problème.
Tisch

2
Dans mon cas, une configuration d'emacs a créé un fichier avec un début et une fin #, par exemple #portal#.
taffit le

31

Vous en avez un autre server_name ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.comquelque part dans la configuration.


2
J'ai vérifié et je n'en ai trouvé aucun. il ne donne pas cet avertissement lorsque je supprime le "ec2_xxx ...". Existe-t-il une valeur implicite par défaut pour 0.0.0.0:80 dans la configuration nginx?
user1447121

Documentation officielle :default: listen *:80 | *:8000;
VBart

2
C'était tout pour moi, mais c'était le cas localhost.
Rohmer

12

Il ne doit y avoir qu'un seul hôte local défini, vérifiez les sites activés ou nginx.conf.


8
J'avais deux directives identiques "nom_serveur" dans deux fichiers * .conf séparés. Merci.
Felipe Alvarez

1
Cela a également résolu mon problème. J'avais placé 2 mêmes blocs de serveur dans différents fichiers * .conf. Merci!
Pranav Jituri

1
En outre, vérifiez tous les fichiers dans ce répertoire: /etc/nginx/conf.d. Chaque domaine peut également apparaître une seule fois (en tant que servernamevaleur) parmi les fichiers de ce répertoire. C'était mon problème!
SherylHohman
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.