So legen Sie eine Verzeichnis-Whitelist und eine IP-Whitelist in Nginx fest

So legen Sie eine Verzeichnis-Whitelist und eine IP-Whitelist in Nginx fest

1. Legen Sie eine Verzeichnis-Whitelist fest: Legen Sie keine Einschränkungen für den angegebenen Anforderungspfad fest. Wenn Sie beispielsweise Anforderungen im API-Verzeichnis nicht einschränken, können Sie schreiben

Server{
    Standort /App {
      Proxy-Passwort http://192.168.1.111:8095/app;

      limit_conn Verbindung 20;

      Grenzrate 500k;

      limit_req Zone=foo Burst=5 Knotenanzahl; 
    }
    Standort /app/api {
      Proxy-Passwort http://192.168.1.111:8095/app/api
    }
}
# Da nginx einer genauen Übereinstimmung Priorität einräumt, begrenzt die obige Schreibmethode die Pfade im API-Verzeichnis.

2. Um eine IP-Whitelist einzurichten, müssen Sie nginx geo und nginx map verwenden

Wenn keine manuelle Löschung erfolgt (--without-http_geo_module oder --without-http_map_module), lädt nginx standardmäßig die mit ngx-http-geo-module und ngx-http-map-module verbundenen Inhalte.

Mit ngx-http-geo-module können Variablen erstellt werden, deren Werte von der IP-Adresse des Clients abhängen.

ngx-http-map-module kann Variablen basierend auf anderen Variablen und ihren Werten erstellen. Es ermöglicht die Klassifizierung oder das Zuordnen mehrerer Variablen zu unterschiedlichen Werten und deren Speicherung in einer Variablen.

Nginx-Geoformat-Syntax (Syntaxformat): geo [$Adresse] $Variable { ... }
Standard: -
Inhalt (Konfigurationsabschnitt): http
Syntax des Nginx-Map-Formats (Syntaxformat): map String $variable { ... }
Standard:-
Inhalt (Konfigurationsabschnitt): http
 
Whitelist-Konfigurationsbeispiel http{
   # ... Andere Konfigurationsinhalte #Definieren Sie die Whitelist-IP-Listenvariable geo $whiteiplist {
     Standard 1;
     127.0.0.1/32 0;
     64.223.160.0/19 0;
   }
   #Verwenden Sie den Map-Befehl, um die Client-Anforderungs-IP in der Whitelist einer leeren Zeichenfolge zuzuordnen: map $whiteiplist $limit{
     1 $binäre_Remote_Adresse;
     0 "";
   }
   #Anforderungslimitinhalt konfigurieren limit_conn_zone $limit zone=conn:10m;
   limit_req_zone $limit zone=allips:10m Rate=20r/s;
   Server{
     Standort /IhrAnwendungsname {
       Proxy-Passwort http://192.168.1.111:8095/app;
       limit_conn Verbindung 50;
       Grenzrate 500k;
       limit_req Zone=Allips Burst=5 Knotenanzahl;
     }
   }
}
Über die Whitelist-Konfiguration können Anfragen von kooperierenden Kunden, Suchmaschinen etc. gefiltert und eingeschränkt werden (Sonderfallbehandlung)
 
#Wenn Sie nur bestimmte Anfragen beschränken möchten, z. B. nur Post-Anfragen, dann:
http{
   # Andere Anfragen..
   # Adresskarte anfordern map $request_method $limit {
     Standard "";
     POST $binary_remote_addr;
   }
   #Grenzwertdefinition limit_req_zone $limit zone=reqlimit:20m Rate=10r/s;
   Server{
     ... #dieselben wie bei normalen Einschränkungen}
}
#Wenn Sie auf dieser Grundlage eine Whitelist-Einschränkungsverarbeitung für die angegebene Methode durchführen möchten, dann:
http{
   #...
   #Definieren Sie die Whitelist-Karte $whiteiplist $limitips{
     1 $binäre_Remote_Adresse;
     0 "";
   }
 
   #Definieren Sie basierend auf der Whitelist die angegebene Methodenanforderungslimitzuordnung $request_method $limit {
     Standard "";
     # POST $binary_remote_addr;
     POST $limitips;
   }
 
   #Referenz limit_req_zone für die Anfrage $limit zone=reqlimit:20m rate=10r/s;
 
   #Referenzserver im Server{
     #...dasselbe wie normale Grenzwerte}
}

Die obige Methode zum Einrichten einer Verzeichnis-Whitelist und einer IP-Whitelist in nginx ist der gesamte Inhalt, den der Editor mit Ihnen teilt. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden.

Das könnte Sie auch interessieren:
  • Implementierung der Multi-Port-Zuordnung des Nginx-Reverse-Proxys
  • Konfigurationsmethode für die Nginx-Portzuordnung
  • Lösen Sie das Problem „Willkommen bei nginx auf Fedora!“. Nach der Installation von nginx auf Centos7 befindet sich im Verzeichnis conf.d keine Datei default.conf.
  • Suchen Sie das laufende Nginx-Verzeichnis im Linux-System
  • Beispiel für die Installation von nginx in einem angegebenen Verzeichnis
  • So leiten Sie den Nginx-Verzeichnispfad um
  • Detaillierte Erläuterung der Vue-Bereitstellung in Unterverzeichnissen oder sekundären Verzeichnissen über NGINX
  • Implementierungscodebeispiel für die lokale Verzeichniszuordnung von Nginx

<<:  js implementiert das klassische Minesweeper-Spiel

>>:  Erstellen Sie einen stabilen und hochverfügbaren Cluster basierend auf MySQL + MyCat, Lastausgleich, Master-Slave-Replikation und Lese-/Schreibtrennung

Artikel empfehlen

So legen Sie ein Kennwort für MySQL Version 5.6 auf dem Mac fest

MySQL kann bei der Installation festgelegt werden...

Zwei Möglichkeiten zum Beenden von Bash im Docker-Container unter Linux

Wenn Sie Bash beenden möchten, haben Sie zwei Mög...

React-Implementierungsbeispiel mit Amap (react-amap)

Die PC-Version von React wurde für die Verwendung...

Zusammenfassung der Verwendung spezieller Operatoren in MySql

Vorwort Es gibt vier Arten von Operatoren in MySQ...

Implementierung der Docker-Container-Statuskonvertierung

Ein Zustandsübergangsdiagramm eines Docker-Contai...

Detaillierte Erklärung der Speicher-Engine in MySQL

Übersicht über die MySQL-Speicher-Engine Was ist ...

Erklärung und Beispielverwendung von 4 benutzerdefinierten Anweisungen in Vue

Vier praktische Vue-Custom-Anweisungen 1. V-Wider...

Detaillierte Erklärung des Synchronisierungsmodifikators von Vue

Inhaltsverzeichnis 1. Anweisungen 2. Modifikatore...

nuxt.js Konfiguration mehrerer Umgebungsvariablen

Inhaltsverzeichnis 1. Einleitung 2. Szenario 3. S...

Ein kurzer Vortrag über die Variablenförderung in JavaScript

Inhaltsverzeichnis Vorwort 1. Welche Variablen we...

Implementierung der MySQL-Datentypkonvertierung

1. Problem Es gibt eine Tabelle wie unten gezeigt...