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

Analyse der Prinzipien der MySQL Slow Query-bezogenen Parameter

MySQL Slow Query, dessen vollständiger Name „Slow...

Natives Javascript+CSS, um den Karusselleffekt zu erzielen

Dieser Artikel verwendet Javascript + CSS, um den...

Schritte und Fallstricke beim Upgrade von Linux MySQL 5.5 auf MySQL 5.7

Inhaltsverzeichnis Linux MySQL 5.5 auf MySQL 5.7 ...

Detaillierter Prozess zum Erstellen von MongoDB und MySQL mit Docker-Compose

Schauen wir uns die detaillierte Methode zum Erst...

Zusammenfassung aller HTML-Interviewfragen

1. Die Rolle des Doctypes, der Unterschied zwisch...

MySQL-Export ganzer oder einzelner Tabellendaten

Exportieren einer einzelnen Tabelle mysqldump -u ...

Das neueste Installations-Tutorial für virtuelle Maschinen VMware 14

Zuerst gebe ich Ihnen den Aktivierungscode für VM...

Beispielcode zur Implementierung eines 3D-Text-Hover-Effekts mit CSS3

In diesem Artikel wird der Beispielcode von CSS3 ...

So verwenden Sie SHTML-Includes

Durch die Anwendung können einige öffentliche Bere...

Beispiel für die Anpassung von rem an mobile Geräte

Vorwort Überprüfung und Zusammenfassung von REM-A...

Grafisches Tutorial zur Installation und Konfiguration von Mysql WorkBench

In diesem Artikel erfahren Sie mehr über die Inst...

JavaScript zum Anzeigen versteckten Formulartexts

Dieser Artikel gibt Ihnen den spezifischen JavaSc...