Die default_server-Direktive von nginx kann einen Standardserver definieren, um einige Anfragen zu verarbeiten, die nicht mit dem Servernamen übereinstimmen. Wenn er nicht explizit definiert ist, wird der erste definierte Server als default_server ausgewählt. Nachdem wir die oben genannten Regeln verstanden haben, können wir ungebundene Domänennamenzugriffe oder direkte IP-Zugriffe erfassen und auf 403-Seiten umleiten. 1. Impliziter Standardserver von nginx http { # Wenn kein Standardserver explizit angegeben ist, wird der erste Server implizit als Standardserver festgelegt Server { hören Sie 80; server_name _; # _ ist nicht der Punkt __ Es ist auch OK ___ Sie können auch 403 zurückgeben; # 403 verboten } Server { hören Sie 80; Servername www.a.com; ... } Server { hören Sie 80; Servername www.b.com; ... } } Viele Leute kopieren und fügen die Idee ein, dass der Servername auf „_“ gesetzt werden sollte, aber das hat eigentlich nichts damit zu tun. '_' ist nur ein Anforderungswiederherstellungsdienst, der nichts mit Geschäftsdomänennamen zu tun hat. Wenn auf unsere Online-Unternehmen alle über eindeutige Geschäftsdomänennamen zugegriffen wird, werden einige nicht geschäftliche Domänennamen oder IP-Zugriffe, die durch Platzhalterauflösung verursacht werden, von diesem Server recycelt. Wenn der Standardserver nicht explizit definiert ist, verwendet nginx den ersten konfigurierten Server als Standardserver, d. h. wenn die Anforderung mit keinem Servernamen übereinstimmt, verarbeitet dieser Server die Anforderung. Wenn wir daher direkt über die IP-Adresse zugreifen, wird dieser zur Verarbeitung an den ersten hier definierten Server übergeben, 403 verboten. 2. Definieren Sie explizit einen Standardserver http { Server { hören Sie 80; Servername www.a.com; ... } Server { hören Sie 80; Servername www.b.com; ... } # Anzeige der Definition eines Standardservers Server { hören Sie 80 Standardserver; Servername _; return 403; # 403 verboten } } Es wird empfohlen, den Standardserver explizit anzugeben, da beim Konfigurieren virtueller Hosts oder mehrerer Dienste mehrere Serverkonfigurationsdateien vorhanden sind. Wenn wir die implizite Methode verwenden, um den ersten geladenen Server als Standardserver auszuwählen, müssen wir immer bestätigen, wer zuerst geladen wird ... was Risiken birgt ... 3. Geben Sie den Servernamen direkt als IP an (kann nur den IP-Zugriff verbieten). http { Server { hören Sie 80; Servername www.a.com; ... } Server { hören Sie 80; Servername www.b.com; ... } # IP-Servername direkt angeben Server { hören Sie 80; Servername xxx.xxx.xxx.xxx; return 403; # 403 verboten } } Alle drei oben genannten Methoden können den direkten Zugriff per IP verbieten, und mit 1 und 2 können auch der Zugriff über ungebundene Domänennamen verbieten (beispielsweise, wenn Sie den primären Domänennamen aufgelöst haben). Hinweis: Wenn nginx Konfigurations-Confs stapelweise lädt, werden sie in ASCII-Reihenfolge geladen, und zwar in der Reihenfolge server_a.conf server_b.conf server_c.conf. Wenn default_server nicht definiert ist, wird server_a als Standardserver verwendet, um Anfragen zu verarbeiten, die nicht an einen Domänennamen/eine IP gebunden sind. Dies ist das Ende dieses Artikels mit der detaillierten Erklärung der Standardserverdefinition und der Übereinstimmungsregeln von nginx. Weitere relevante Übereinstimmungsregeln für den Standardserver von nginx finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: MySQL Installer 8.0.21 Installations-Tutorial mit Bildern und Text
>>: Grundlegende Syntax des MySQL-Index
Angenommen, Taobao animiert die Leute zum Einkauf...
Inhaltsverzeichnis Problembeschreibung Ursachenan...
Inhaltsverzeichnis Wesentlicher Unterschied Daten...
Shtml und asp sind ähnlich. In Dateien mit dem Nam...
Vorwort Ich habe mir die zuvor veröffentlichten A...
Inhaltsverzeichnis Vorwort Was sind Enumerationen...
1. Überlaufinhalt-Überlaufeinstellungen (festlegen...
Vorwort Unter Linux ist zum Kompilieren und Verkn...
Öffnen Sie das Verbindungstool. Ich verwende Moba...
1. mysqlbinlog: [FEHLER] unbekannte Variable „def...
Einführung: Die Überprüfung des Ziehens von Schie...
Wir haben bereits darüber gesprochen, wie man ein...
Aufgrund von Geschäftsanpassungen im Unternehmen ...
Inhaltsverzeichnis 1. Einleitung 2. Grundsatz Pra...
Einführung in CentOS CentOS ist eine Linux-Distri...