Zweck Machen Sie sich mit den Nginx-Modulen ngx_http_limit_conn_module und ngx_http_limit_req_module vertraut, um das Anforderungszugriffsvolumen zu steuern. Nginx-Modularität Die interne Struktur von nginx besteht aus einem Kernmodul und einer Reihe von Funktionsmodulen. Durch die modulare Architektur sind die Funktionen der einzelnen Module relativ einfach, was zu einer hohen Kohäsion führt und zudem die funktionale Erweiterung von Nginx erleichtert. Für Webanforderungen bilden alle aktivierten Module von Nginx eine Kette, ähnlich den Levels in einem Spiel. Jedes Modul ist für eine bestimmte Funktion verantwortlich, wie beispielsweise das Modul ngx_http_gzip_module für die Komprimierung, das Modul ngx_http_auth_basic_module für die Authentifizierung und das Modul ngx_http_proxy_module für den Proxy. Verbindungsanfragen zum Server werden nacheinander von jedem Nginx-Modul verarbeitet. Erst nachdem sie von diesen Modulen verarbeitet wurden, werden die Anfragen tatsächlich zur Verarbeitung an den Hintergrundprogrammcode übergeben. Gleichzeitige Zugriffskontrolle mit Nginx Bei Webservern sind bei Angriffen durch Webcrawler oder bösartige Angriffe mit großem Datenverkehr der Serverspeicher und die CPU sowie die Bandbreite voll. Daher ist es als ausgereifte Server-Proxy-Software erforderlich, diese Situationen kontrollieren zu können. Es gibt zwei Möglichkeiten, die Parallelität in Nginx zu steuern. Eine besteht darin, die Parallelität über IP oder andere Parameter zu steuern. Die andere besteht darin, die Gesamtzahl der pro Zeiteinheit verarbeiteten Anforderungen zu steuern. Das heißt, die Steuerung von Gleichzeitigkeit und Parallelität. Diese beiden Funktionen werden von den Modulen ngx_http_limit_conn_module bzw. ngx_http_limit_req_module implementiert. Modul ngx_http_limit_conn_module veranschaulichen Dieses Modul wird hauptsächlich zur Steuerung der Anzahl gleichzeitiger Anfragen verwendet. Parameterkonfiguration Verbindungsbegrenzungszone
limit_conn_log_level
limit_conn
limit_conn_status
Grenzrate
limit_rate_nach
Einfaches Konfigurationsbeispiel Verbindungslimitzone $binary_remote_addr Zone=Adresse:10m; Server { hören Sie 80; Servername www.domain.com; Stammverzeichnis /Pfad/; Index Index.html Index.htm; Standort /IP { limit_conn_status 503; # Der Statuscode, der nach Überschreiten des Limits zurückgegeben wird; limit_conn_log_level warn; # Protokollierungsebene limit_rate 50; # Bandbreitenlimit limit_conn addr 1; # Gleichzeitigen Zugriff kontrollieren} # Wenn das Limit für gleichzeitige Zugriffe überschritten wird, wird die Fehlerseite 503 error_page 503 /503.html zurückgegeben. } Modul ngx_http_limit_req_module veranschaulichen Dieses Modul steuert hauptsächlich die Anzahl der Anfragen pro Zeiteinheit. Verwenden Sie zum Filtern den „Leaky Bucket“-Algorithmus. Wenn nach dem Festlegen der Grenzrate die Anzahl der Anfragen pro Zeiteinheit die Rate überschreitet, erkennt das Modul den Burst-Wert. Wenn der Wert 0 ist, gibt die Anfrage einen Fehler zurück oder wartet entsprechend der Verzögerungs-|Knotenverzögerungskonfiguration; wenn der Burst größer als 0 ist und die Anzahl der Anfragen größer als die Rate, aber kleiner als der Burst ist, wird die Anfrage zur Verarbeitung in die Warteschlange gestellt. Parameterkonfiguration limit_req_zone
Grenzwert_Anforderung
Die Konfigurationsparameter limit_req_log_level und limit_req_status stimmen mit dem Modul ngx_http_limit_conn_module überein. Einfaches Konfigurationsbeispiel limit_req_zone $binary_remote_addr Zone=Anforderung:10m Rate=2r/m; Server { hören Sie 80; Servername www.domain.com; Stammverzeichnis /Pfad/; Index Index.html Index.htm; Standort /Limit { limit_req Zone=req Burst=3 Knotenanzahl; } # Wenn das Limit für gleichzeitige Zugriffe überschritten wird, wird die Fehlerseite 503 error_page 503 /503.html zurückgegeben. } Beachten Für beide Arten der Zugriffskontrolle ist die Beantragung von Speicherplatz erforderlich. Da Speicherplatz vorhanden ist, kommt es natürlich zu Situationen, in denen der Speicher erschöpft ist. Zu diesem Zeitpunkt werden neue Anforderungen mit Fehlern zurückgegeben. Wenn Zugriffsbeschränkungen aktiviert sind, ist daher eine Überwachung erforderlich, um solche Situationen zu verhindern. Zusammenfassung Durch eine kurze Einführung in die modulare Architektur von Nginx konzentrieren wir uns auf das Verständnis der Funktionen und Konfigurationsparameter der Module ngx_http_limit_conn_module und ngx_http_limit_req_module und implementieren die Parallelitätssteuerung von Anforderungen von Nginx. Wenn etwas nicht stimmt, informieren Sie uns bitte 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:
|
>>: So installieren Sie Mysql5.7 in Centos6
Dieser Artikel fasst die allgemeinen Befehle zur ...
Optgroup wird im Auswahltag verwendet, um den Inha...
Inhaltsverzeichnis Berechnete Daten initialisiere...
Inhaltsverzeichnis 1. CentOS7+MySQL8.0, Yum-Quell...
Vorwort Im Linux-Kernel ist Netfilter ein Subsyst...
Voraussetzungen Ein Cloud-Server (centOS von Alib...
Später habe ich auch hinzugefügt, wie man Jupyter...
Inhaltsverzeichnis Vorwort 1. Ereignisse und Zwis...
In vertikaler Richtung können Sie die Zellenausri...
In diesem Artikelbeispiel wird der spezifische Co...
Beim Ausführen von yum im Dockerfile oder im Cont...
Inhaltsverzeichnis Vielfältige Einsatzmöglichkeit...
Inhaltsverzeichnis So benennen Sie eine MySQL-Dat...
1. MySQL installieren Dieser Artikel wird über AP...
Die Festlegung einer Begrenzung der Anzahl von Be...