Warum reagiert Nginx auf eine IP-Adresse ohne eine default_server-Direktive?

Warum reagiert Nginx auf eine IP-Adresse ohne eine default_server-Direktive?

Ich habe einen Nginx-Webserver mit zwei Sites, die auf Port 80 für zwei Domänen lauschen: dom.netunddom.se

In sites-enabledhabe ich Dateien für jedes dieser Elemente dom.net.siteund dom.se.site, die bis auf die server_nameDirektive 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 , locationdas 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_serverin 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

verwandte Informationen