Ich habe einen Nginx-Webserver mit zwei Sites, die auf Port 80 für zwei Domänen lauschen: dom.net
unddom.se
In sites-enabled
habe ich Dateien für jedes dieser Elemente dom.net.site
und dom.se.site
, die bis auf die server_name
Direktive identisch sind. Es ist entweder server_name dom.net *.dom.net;
oder server_name dom.se *.dom.se;
. Der Rest ist praktisch gleich, bis auf ein , location
das mir beim Debuggen hilft, und sieht so aus (für die .net-Site):
location /check {
return 200 'dom.net';
add_header Content-Type text/plain;
}
Was ich nicht verstehe, ist, warum ich, wenn ich zu http://my-server-ip/check gehe, die gleiche Antwort bekomme, als wenn ich zuhttp://server.dom.net/check. Ich habe default_server
in keiner der Site-Dateien eine Anweisung und trotzdem antwortet Nginx auf die IP-Adresse.
Und warum hat eshttp://server.dom.netund nichthttp://server.dom.se?
Sehr verwirrt.
Antwort1
Es gibt eine Standardkonfiguration für nginx im folgenden Pfad: /etc/nginx/nginx.conf. Wenn Sie sie lesen, finden Sie einen Block mit der Syntax „http{}“ und in diesem Block gibt es eine Zeile, die besagt:
include /etc/nginx/sites-enabled/*
Nginx lädt also die Dateien in diesem Verzeichnis in der Reihenfolge (alphabetisch), wie "Gerald Schneider" im Kommentar erwähnte