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.