Detaillierte Erläuterung der Verbindungslimitkonfiguration von Nginx für IP-Adressen in einem Netzwerksegment

Detaillierte Erläuterung der Verbindungslimitkonfiguration von Nginx für IP-Adressen in einem Netzwerksegment

Das sogenannte Verbindungslimit in Nginx ist tatsächlich eine TCP-Verbindung, dh der Verbindungsstatus, der vom Anforderer nach einem Drei-Wege-Handshake erfolgreich hergestellt wurde. Nginx stellt uns im Allgemeinen das Modul ngx_http_limit_conn_module zur Verfügung, um eine Verbindungsbegrenzungsfunktion bereitzustellen. Dieses Modul kann die Anzahl der Verbindungen für jeden Schlüsselwert basierend auf dem definierten Schlüssel begrenzen, beispielsweise die Anzahl der Verbindungen von einer einzelnen IP-Quelle.

Erläuterung der Anweisung ngx_http_limit_conn_module

Syntax: limit_conn Zonennummer;
Standard: -
Kontext: http, Server, Standort

Diese Anweisung beschreibt den Speicherbereich für den Sitzungsstatus. Der Status des Schlüssels enthält die aktuelle Anzahl der Verbindungen und der Wert des Schlüssels kann für eine bestimmte Variable jeder beliebige Wert ungleich Null sein (Nullwerte werden nicht berücksichtigt). $variable definiert den Schlüssel und zone=name definiert den Zonennamen. Häufige Anwendungsbeispiele:

Verbindungslimitzone $binary_remote_addr Zone=Adresse:10m;

Server {
  Standort /download/ {
    limit_conn Adresse 1;
  }

Das obige Beispiel zeigt, dass bei einer Anforderung zum Zugriff auf /download/ immer nur eine Anforderungsverbindung die Ressource erfolgreich herunterladen kann.

Netzwerksegmentbeschränkung

Übliche limit_conn_zone-Konfigurationen legen im Allgemeinen $binary_remote_addr oder $server_name fest, um die Anzahl der Verbindungen auf einer einzelnen IP- oder Hostebene zu begrenzen.

Aber manchmal möchten wir die Anzahl der Verbindungen auf ein bestimmtes IP-Segment beschränken. Dann können wir Folgendes tun:

http {

... ...

  limit_conn_zone $ip_segment zone=Netzwerksegment:10m;

  Server {
      ... ...
      setze $ip_segment $remote_addr;

      wenn ( $ip_segment ~ ^(\d+)\.(\d+)\.(\d+)\.(\d+) ) {
        setze $ip_segment $1.$2.$3;
      }

      Standort /download/ {
        limit_conn Netzwerksegment 10; 
        #Grenzwert 200k;
      }

  }
}

Dies erfüllt grundsätzlich die Anforderung von Nginx, eine einheitliche Verbindungsbeschränkung für die Anzahl der Verbindungen für alle IPs im Netzwerksegment festzulegen.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Nginx-Strombegrenzungskonfiguration
  • Analyse der Implementierung der Nginx Rush-Kaufstrombegrenzungskonfiguration
  • Praktische Aufzeichnung der aktuellen Einschränkungen und des Konfigurationsmanagements von Nginx

<<:  Vue implementiert die Countdown-Komponente für zweite Kills

>>:  So zeigen Sie den Speicherort von MySQL-Datendateien an

Artikel empfehlen

Ein Beispiel, wie JavaScript doppelte Netzwerkanforderungen verhindern kann

Vorwort Während der Entwicklung stoßen wir häufig...

MySQL 5.7.12 Installations- und Konfigurations-Tutorial unter Mac OS 10.11

So installieren und konfigurieren Sie MySQL auf M...

Reines CSS zum Hinzufügen von Stil zur ausgewählten Implementierung (kein Skript)

Ändern Sie den Standardstil der Auswahl, normalerw...

Detaillierte Erklärung inkompatibler Änderungen von Komponenten in vue3

Inhaltsverzeichnis Funktionale Komponenten So sch...

Detaillierte Erklärung der Verwendung von overflow:auto

Bevor ich mit dem Haupttext beginne, werde ich ei...

XHTML drei Dokumenttypdeklarationen

XHTML definiert drei Dokumenttypdeklarationen. Am...

So optimieren Sie die MySQL-Leistung durch langsame MySQL-Abfragen

Mit zunehmender Anzahl von Besuchen steigt der Dr...

Lernprogramm für HTML-Webseitenlisten-Tags

Lernprogramm zum Erlernen von Listen-Tags für HTML...

Vue3 implementiert ein Beispiel für eine Nachrichtenkomponente

Inhaltsverzeichnis Komponentendesign Definieren d...

Detaillierte Erläuterung des Produktionsprinzips des jQuery-Atemkarussells

In diesem Artikel wird der spezifische Prozess de...

Analyse des Ereignisschleifenmechanismus von js

Vorwort Wie wir alle wissen, ist JavaScript im Ke...

So führen Sie das Springboot-Projekt im Docker aus

1. Klicken Sie unten in IDEA auf Terminal und geb...

Beispiel zur MySQL-Passwortänderung – ausführliche Erklärung

Beispiel zur MySQL-Passwortänderung – ausführlich...