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

MySQL Deep Paging (wie man schnell Millionen von Daten paginiert)

Inhaltsverzeichnis Vorwort Fall Optimierung Zusam...

Grundlegende Operationen an unsichtbaren Spalten in MySQL 8.0

Inhaltsverzeichnis 01 Unsichtbare Spalten erstell...

Tiefgreifendes Verständnis des asynchronen Wartens in Javascript

In diesem Artikel untersuchen wir, warum async/aw...

Webpack erstellt ein Gerüst zum Verpacken von TypeScript-Code

Erstellen eines Ordners Verzeichnisstruktur: daba...

Gängige Reparaturmethoden für die Trennung der MySQL Master-Slave-Replikation

Inhaltsverzeichnis 01 Problembeschreibung 02 Lösu...

So verwenden Sie die asynchrone Anforderungs-API von Axios in Vue

Inhaltsverzeichnis Einrichten einer einfachen HTT...

Eine kurze Diskussion über die Definition und Vorsichtsmaßnahmen von H-Tags

Den Ergebnissen zufolge gibt es für die Definitio...

Einführung in die Containerfunktion of() in der Linux-Kernel-Programmierung

Vorwort Bei der Linux-Kernel-Programmierung werde...

CSS3-Beispielcode zum Erreichen einer Elementbogenbewegung

So verwenden Sie CSS, um die Bogenbewegung von El...

Detaillierte Erklärung des Flex-Layouts in CSS

Flex-Layout wird auch elastisches Layout genannt....

So überprüfen Sie die Version des Kali Linux-Systems

1. Überprüfen Sie die Kali-Linux-Systemversion Be...

RHEL7.5 MySQL 8.0.11 Installations-Tutorial

Dieser Artikel zeichnet das Installationstutorial...