Konfigurationsmethode für das Nginx-Anforderungslimit

Konfigurationsmethode für das Nginx-Anforderungslimit

Nginx ist ein leistungsstarker, leistungsstarker Web- und Reverse-Proxy-Server mit vielen hervorragenden Funktionen:
Bei hoher Verbindungsparallelität ist Nginx eine gute Alternative zum Apache-Dienst: Nginx ist eine der Softwareplattformen, die von Chefs im virtuellen Hosting-Geschäft in den USA häufig gewählt wird. Kann Antworten von bis zu 50.000 gleichzeitigen Verbindungen unterstützen, dank Nginx, das sich für uns für Epoll und Kqueue als Entwicklungsmodell entschieden hat.

1. Nginx-Anforderungslimit

  • limit_conn_module Verbindungshäufigkeitslimit
  • limit_req_module-Anforderungshäufigkeitsgrenze

2. Verbindung und Anforderung des HTTP-Protokolls

1. Das Konzept der HTTP-Protokollverbindung und -anforderung

  • HTTP-Anfragen basieren auf einer TCP-Verbindung. Um eine HTTP-Anfrage abzuschließen, ist ein Drei-Wege-Handshake von TCP erforderlich.
  • Basierend auf der TCP-Verbindung wird eine HTTP-Anforderung erstellt. Eine TCP-Anforderung generiert mindestens eine HTTP-Anforderung.

2. Darstellung der HTTP-Protokollverbindung und -Anforderung

Bildbeschreibung hier einfügen

3. Die Beziehung zwischen HTTP-Protokollverbindung und Anforderungsversionen

HTTP-Protokollversion Verbindungsbeziehung
HTTP1.0 TCP kann nicht wiederverwendet werden
HTTP1.1 Sequentielles TCP-Multiplexing
HTTP2.0 Multiplexen TCP-Multiplexen

3. Konfigurationssyntax des Nginx-Verbindungslimits

1. Konfigurationssyntax von limit_conn_zone

  • Syntax: limit_conn_zone Schlüsselzone=Name:Größe; limit_conn_zone gibt den angeforderten Verbindungsspeicherplatz an. Schlüssel gibt an, welche Verbindung verschlüsselt ist. Wenn beispielsweise die IP des Clients als Schlüssel verwendet wird, bezieht sich die Einschränkung auf die IP des Clients. zone=name gibt den Namen des beantragten Speicherplatzes an. size gibt die Größe des angeforderten Speicherplatzes an
  • Standard: —— bedeutet, dass standardmäßig keine Konfiguration vorhanden ist
  • Kontext: http bedeutet, dass es im http-Block konfiguriert werden muss

2. Konfigurationssyntax von limit_conn

  • Syntax: limit_conn-Zonennummer; Zone gibt den Namen des in limit_conn_zone beantragten Speicherplatzes an, und Nummer gibt das Limit gleichzeitiger Anforderungen an, d. h. die Anzahl der gleichzeitig begrenzten Verbindungen.
  • Standard: —— bedeutet, dass standardmäßig keine Konfiguration vorhanden ist
  • Kontext: http, Server, Standort bedeutet, dass die Konfiguration im http-Block, Server-Block oder Standort-Block erfolgen muss.

4. Konfigurationssyntax der Nginx-Anforderungsbeschränkung

1. Konfigurationssyntax von limit_req_zone

  • Syntax: limit_req_zone Schlüsselzone=Name:Größe Rate=Rate; limit_req_zone gibt den angeforderten Verbindungsspeicherplatz an. Schlüssel gibt an, welche Verbindung verschlüsselt ist. Wenn beispielsweise die IP des Clients als Schlüssel verwendet wird, bezieht sich die Einschränkung auf die IP des Clients. zone=name gibt den Namen des beantragten Speicherplatzes an. Größe gibt die Größe des angeforderten Speicherplatzes an. rate gibt die Begrenzung der Anfrage an, die sich auf eine Begrenzungseinheit (in Sekunden) bezieht
  • Standard: —— bedeutet, dass standardmäßig keine Konfiguration vorhanden ist
  • Kontext: http bedeutet, dass es im http-Block konfiguriert werden muss

2. Konfigurationssyntax von limit_req

  • Syntax: limit_req zone=Name [burst = Nummer] [nodelay]; zone=Name gibt den Namen des in limit_req_zone angeforderten Speicherplatzes an; burst = Nummer gibt an, dass nach Überschreiten der festgelegten Rate die verbleibende Anzahl von Anforderungen zur Ausführung in die nächste Sekunde gestellt wird;
  • Standard: —— bedeutet, dass standardmäßig keine Konfiguration vorhanden ist
  • Kontext: http, Server, Standort bedeutet, dass die Konfiguration im http-Block, Server-Block oder Standort-Block erfolgen muss.

5. Konfigurationsdemonstration der Nginx-Anforderungsbeschränkung

1. Erstellen Sie zunächst eine Seite „submodule.html“ und laden Sie sie in das Verzeichnis /opt/app/html hoch, damit Sie die Kompilierungsparameter des Moduls „sub_module“ konfigurieren und dann auf die Seite „submodule.html“ im Verzeichnis /opt/app/html zugreifen können, um den ersetzten Inhalt anzuzeigen.

submodule.html-Seite

<html>
	<Kopf>
		<meta charset="utf-8">
		<title>Untermodul</title>
	</Kopf>
	<Text>
		<a>html</a></br>
		<a>xml</a></br>
		<a>json</a></br>
		<a>xml</a></br>
		<a>jsp</a></br>
		<a>html</a>
	</body>
</html>

Der Browserzugriff erfolgt wie folgt

Bildbeschreibung hier einfügen

2. Bearbeiten Sie die Konfigurationsdatei nginx.conf

[root@localhost /]# vim /etc/nginx/nginx.conf 

Bildbeschreibung hier einfügen

3. Fügen Sie die folgende Konfiguration im http-Block hinzu

#$binary_remote_addr stellt die Adresse des Clients dar;
#zone=req_zone gibt den Speicherplatznamen für Anfragen an, die von derselben Clientadresse initiiert wurden. #1r/s bedeutet „einmal pro Sekunde“ limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s; 

Bildbeschreibung hier einfügen

4. Fügen Sie die folgende Konfiguration zum Standortblock des http-Blocks hinzu

#Konfiguration des Standortlimits für Nginx-Verbindungsanforderungen / {
    Stammverzeichnis /opt/app/html;
    limit_req zone=erforderliche_Zone;
} 

Bildbeschreibung hier einfügen

5. Überprüfen Sie, ob die geänderte Konfigurationsdatei korrekt ist. Wenn die Meldung „erfolgreich“ zurückgegeben wird, bedeutet dies, dass die Konfigurationsdatei korrekt geändert wurde. Überprüfen Sie andernfalls die Syntax der Konfigurationsdatei.

Bildbeschreibung hier einfügen

6. Laden Sie die Konfigurationsdatei neu

[root@localhost /]# systemctl reload nginx 

Bildbeschreibung hier einfügen

7. Verwenden Sie das AB-Stresstesttool, um gleichzeitige Anfragen zu stellen

Informationen zur Installation des AB-Stresstest-Tools finden Sie unter diesem Blog-Beitragslink: https://wwwxz.blog.csdn.net/article/details/118584751

#-n gibt die Anzahl der initiierten Anfragen an, -c gibt die Anzahl der gleichzeitigen Anfragen an [root@localhost ~]# ab -n 20 -c 10 http://localhost/submodule.html 

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels zum Konfigurieren des Nginx-Anforderungslimits. Weitere Informationen zum Nginx-Anforderungslimit finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung des Nginx-HTTP-Ressourcenanforderungslimits (drei Methoden)
  • Detaillierte Erläuterung der Nginx-Anforderungslimits (Verbindungslimits und Anforderungslimits)
  • Eine kurze Diskussion über die Implementierung der Anforderungsbeschränkung und Zugriffskontrolle bei Nginx
  • Globale Zugriffsbeschränkung durch Nginx-Proxy-Interception-Anforderung
  • Nginx begrenzt die Anzahl der Besuche und Anfragen an eine bestimmte IP im gleichen Zeitraum. Beispielcode
  • Tutorial zum Konfigurieren des Moduls zur Begrenzung der Anzahl von Verbindungen und Anfragen im Nginx-Server

<<:  Zusammenfassung der MySQL-Fremdschlüsseleinschränkungen und Tabellenbeziehungen

>>:  Implementieren eines Tabellen-Scrollkarusselleffekts durch CSS-Animation

Artikel empfehlen

Der Prozess der Installation von SVN auf Ubuntu 16.04.5LTS

Dieser Artikel stellt kurz den Prozess der Einric...

Detaillierte Erläuterung des mobilen Projekts vite2.0 + vue3

1. Technische Punkte Vite-Version vue3 ts Integri...

So optimieren Sie Bilder, um die Website-Leistung zu verbessern

Inhaltsverzeichnis Überblick Was ist Bildkomprimi...

Beispielcode des Spread-Operators und seiner Anwendung in JavaScript

Der Spread-Operator ermöglicht die Erweiterung ei...

Erstellen einer verteilten Selenium-Umgebung basierend auf Docker

1. Laden Sie das Bild herunter Docker-Pull Seleni...

Detailliertes Tutorial zum Ersetzen von mysql8.0.17 in Windows 10

In diesem Artikel werden die spezifischen Schritt...

Drei Diskussionen zum Iframe Adaptive Height Code

Beim Erstellen einer B/S-Systemschnittstelle stößt...

JavaScript implementiert das Topfschlagen-Spiel von Gray Wolf

1. Projektdokumente 2. Verwenden Sie HTML und CSS...