Detaillierte Erläuterung der default_server-Definition und der entsprechenden Regeln von nginx

Detaillierte Erläuterung der default_server-Definition und der entsprechenden Regeln von nginx

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:
  • Implementierung von Nginx-Weiterleitungsübereinstimmungsregeln
  • Erläuterung der Regeln zum Standortabgleich für die Nginx-Konfiguration (Beispiel)
  • Detaillierte Analyse der Übereinstimmungsregeln bei der Verarbeitung von Anfragen durch Nginx
  • Detaillierte Zusammenfassung der URI-Übereinstimmungsregeln der Nginx Location-Direktive
  • Beispiel einer Nginx-Standortübereinstimmungsregel
  • Eine kurze Zusammenfassung der Nginx-Übereinstimmungsregeln (empfohlen)
  • Detaillierte Erläuterung der Nginx-Standortabgleichsregeln
  • Detaillierte Erläuterung der Standortdirektiven-Matching-Regeln des Nginx-Servers
  • Einführung in Standortabgleichsregeln in Nginx

<<:  MySQL Installer 8.0.21 Installations-Tutorial mit Bildern und Text

>>:  Grundlegende Syntax des MySQL-Index

Artikel empfehlen

Detaillierte Erklärung zur Verwendung von Vue.prototype in Vue

Inhaltsverzeichnis 1. Einfaches Beispiel 2. Legen...

Tomcat verwendet Thread-Pool zur Verarbeitung gleichzeitiger Remote-Anfragen

Wenn wir verstehen, wie Tomcat gleichzeitige Anfr...

Verwenden Sie PSSH zur Stapelverwaltung von Linux-Servern

pssh ist eine in Python implementierte Open-Sourc...

Eine kurze Erläuterung des Navigationsfensters in Iframe-Webseiten

Eine kurze Erläuterung des Navigationsfensters in...

HTML+jQuery zur Implementierung einer einfachen Anmeldeseite

Inhaltsverzeichnis Einführung Öffentlicher Code (...

Zwei Methoden zur Implementierung der Mysql-Remoteverbindungskonfiguration

Zwei Methoden zur Implementierung der Mysql-Remot...

Ein Beispiel für die Berechnungsfunktion calc in CSS im Website-Layout

calc ist eine Funktion in CSS, die zum Berechnen ...