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.

user1447121
la source
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.

Omar Al-Ithawi
la source
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.

VBart
la source
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.

Marin
la source
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