nginx - erreur de serveur par défaut en double

105

Dans mon journal des erreurs, je reçois

[émerg] 10619 # 0: un serveur par défaut en double pour 0.0.0.0:80 dans /etc/nginx/sites-enabled/mysite.com:4

sur la ligne 4, j'ai:

server_name mysite.com   www.mysite.com;

Aucune suggestion?

Ymn
la source
4
Publiez votre configuration complète. Chacun server {}devrait avoir sa propre listendirective.
Marki555
Si vous éditiez quelque chose dans les sites activés et que la connexion se fermait de manière inattendue, vous pouvez terminer avec un fichier de sauvegarde automatique à partir de l'éditeur de texte, de sorte que vous vous terminerez avec presque toutes les configurations dupliquées, supprimez simplement ce fichier (pour nano file.save)
LuisF

Réponses:

197

Vous avez probablement d'autres fichiers (tels que la defaultconfiguration) /etc/nginx/sites-enabledqui doivent être supprimés.

Ce problème est dû à une répétition du default_serverparamètre fourni à une ou plusieurs listendirectives dans vos fichiers. Vous trouverez probablement que cette directive contradictoire lit quelque chose de similaire à:

listen 80 default_server;

Comme la documentation du module de base nginx pour leslisten états:

Le default_serverparamètre, s'il est présent, fera que le serveur deviendra le serveur par défaut pour la address:portpaire spécifiée . Si aucune des directives n'a le default_serverparamètre, le premier serveur avec la address:portpaire sera le serveur par défaut pour cette paire.

Cela signifie qu'il doit y avoir un autre fichier ou serverbloc défini dans votre configuration avec default_serverset pour le port 80. nginx le rencontre avant votre mysite.comfichier alors essayez de supprimer ou d'ajuster cette autre configuration.

Si vous avez du mal à trouver où ces directives et paramètres sont définis, essayez une recherche comme celle-ci:

grep -R default_server /etc/nginx
Davidjb
la source
Merci. Cela a vraiment aidé.
Koushik Das
30
Pour être clair, c'est le default_servermot clé qui ne peut apparaître que dans une seule configuration - vous pouvez définir plusieurs sites aveclisten 80;
Eborbob
1
Merci, vous m'avez aidé. Dans mon cas, j'ai trouvé un doublon dans /etc/nginx/sites-enabled/default.save
Andrew Grow
1
Suite au commentaire de @ Eborbob, le default_serverparamètre ne peut apparaître qu'une seule fois pour chaque address:portpaire. Cela signifie qu'il est possible (et courant) d'avoir des default_serverprésentations plusieurs fois dans une configuration globale de nginx, mais en s'appliquant à différentes adresses IP / ports.
davidjb
2
la commande grep était juste le ticket. ce sont les choses simples, merci
FireDragon
6

OS Debian 10 + nginx. Dans mon cas, j'ai dissocié la page "par défaut" comme suit:

  1. cd / etc / nginx / sites-enabled
  2. dissocier par défaut
  3. redémarrage du service nginx
Navid Nasir
la source
ça marche avec moi. Merci
Abdelhamed Abdin
5

Exécutez ceci sur le terminal pour voir les configurations conflictuelles écoutant le même port:

grep -R default_server /etc/nginx
Eduardo A. Fernández Díaz
la source
4

Si vous êtes sur Digital Ocean, cela signifie que vous devez aller dans / etc / nginx / sites-enabled / puis SUPPRIMER en utilisant rm -R digitalocean et default

Il l'a réparé pour moi!

Photo de la console sous Windows 10 utilisant Bitvise

user1465132
la source
C'était la réponse simple qui a fonctionné pour moi. Je devais aller dans / etc / nginx / sites-enabled / rm -R previousServerFolderNamepuis faire sudo service nginx restartpour que le systemctl status nginxspectacle "active (en cours)"
Roly Poly