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.

user1447121
quelle
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.

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

VBart
quelle
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.

Marin
quelle
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