Nginx-Fehler "widersprüchlicher Servername" ignoriert [geschlossen]


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

}}

Dies führt zu einem Nignx-Fehler [warn], der den Servernamen "ec2 ..." auf 0.0.0.0:80 in Konflikt bringt. Ich verstehe nicht, jede Erklärung wird geschätzt. Vielen Dank.


Es scheint einen impliziten Standardwert von 0.0.0.0:80 zu geben, der explizit für mich funktioniert hat. Hören Sie ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.com:80; gefolgt von der Direktive server_name funktioniert.
— user1447121

1
Überprüfen Sie, /etc/nginx/sites-available/<site-name>ob mit verknüpft ist /etc/nginx/sites-enabled/<site-name>. Zusätzliche Dateien hier können doppelte oder widersprüchliche Konfigurationen enthalten.
— Hanxue

Wechsel config.force_ssl = trueauf falsemein Problem gelöst, nahm dieser Tage mir, um herauszufinden
— Muyide Ibukun

1
Für mich war der gleiche Fehler auf ein fehlendes Semikolon am Ende einer der server_nameZeilen zurückzuführen, als ich mehrere serverEinträge hatte.
— Kevin

2
Certbot von LetsEncrypt hatte in meinem Fall einen Serverblock in die Standarddatei eingefügt. Dies geschah, weil ich versuchte, das Zertifikat zu erhalten, bevor ich den separaten Serverblock eingerichtet hatte.
— Alex D

Antworten:


162

Ich gehe davon aus, dass Sie ein Linux verwenden und gEdit zum Bearbeiten Ihrer Dateien verwenden. In der /etc/nginx/sites-enabledhat es möglicherweise eine temporäre Datei hinterlassen, zB default~(siehe ~).

Abhängig von Ihrem Editor kann die Datei einen Namen .saveoder ähnliches haben. Führen Sie einfach aus, um $ ls -lahzu sehen, welche Dateien nicht vorhanden sein sollen, und entfernen Sie sie (Danke @Tisch dafür).

Löschen Sie diese Datei und es wird Ihr Problem lösen.


Das Problem wurde für mich unter Ubuntu 12.04 x86_64 + nginx behoben
— Stephen Sprinkle

1
könntest Du das erläutern? Ich sehe überhaupt keine "Standard ~" - Dateien in meinem / etc / nginx / sites-enabled, nur im "Standard" -Ordner.
— David Saintloth

3
@ Jakobud in /etc/nginx/sites-enabled. Ich habe meine Antwort bearbeitet, um sie zu erwähnen.
— Omar Al-Ithawi

3
Ich hatte eine .save-Datei, die das Problem verursachte.
— Tisch

2
In meinem Fall hat eine Konfiguration von Emacs eine Datei mit einem führenden und einem nachfolgenden erstellt #, z #portal#.
— Taft

31

Sie haben server_name ec2-xx-xx-xxx-xxx.us-west-1.compute.amazonaws.comirgendwo in der Konfiguration eine andere .


2
Ich habe das überprüft und keine gefunden. Diese Warnung wird nicht ausgegeben, wenn ich "ec2_xxx ..." entferne. Gibt es einen impliziten Standard für 0.0.0.0:80 in der Nginx-Konfiguration?
— user1447121

Offizielle Dokumentation :default: listen *:80 | *:8000;
— VBart

2
Das war es für mich, aber es war es localhost.
— Rohmer

12

Es sollte nur ein lokaler Host definiert sein, überprüfen Sie sites-enabled oder nginx.conf.


8
Ich hatte zwei identische "Servername" -Anweisungen in zwei separaten * .conf-Dateien. Vielen Dank.
— Felipe Alvarez

1
Dies löste auch mein Problem. Ich hatte 2 gleiche Serverblöcke in verschiedenen * .conf-Dateien platziert. Vielen Dank!
— Pranav Jituri

1
Überprüfen Sie auch alle Dateien in diesem Verzeichnis : /etc/nginx/conf.d. Jede Domäne kann auch nur einmal (als servernameWert) unter den Dateien in diesem Verzeichnis angezeigt werden. Das war mein Problem!
— SherylHohman
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.