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
Beim Setzen des Textes im Suchtextfeld springt di...
In diesem Artikel wird der spezifische Code von R...
Die unbedeutende flex-basis hat bei der kleinen F...
In diesem Artikel wird der spezifische Code von j...
WeChat-Miniprogramme erfreuen sich immer größerer...
Wir begegnen dieser Situation häufig bei der Fron...
1. Vier Startmethoden: 1.mysqld Starten Sie den M...
Einführung in vi/vim Beide sind Multimode-Editore...
IIS7 Laden Sie das HTTP Rewrite-Modul von der off...
Heute werden wir einen einfachen Fall durchgehen ...
Inhaltsverzeichnis Überblick 1. useState 1.1 Drei...
1. Globales Objekt Alle Module können aufgerufen ...
<br />Originalartikel: http://www.alistapart...
sudo-Konfigurationsdatei Die Standardkonfiguratio...
Inhaltsverzeichnis Vorwort Einführung in Dockerfi...