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

Schritte zum Kapseln von Element-UI-Popupkomponenten

Kapseln Sie el-dialog als Komponente ein Wenn wir...

So importieren Sie SQL-Dateien in Navicat Premium

Ich habe heute mit der Arbeit an meinem Abschluss...

So optimieren Sie MySQL-Indizes

1. Wie MySQL Indizes verwendet Indizes werden ver...

MySQL: MySQL-Funktionen

1. Integrierte Funktionen 1. Mathematische Funkti...

Detaillierte Analyse der Kompilierung und Installation von vsFTP 3.0.3

Details zur Sicherheitsanfälligkeit VSFTP ist ein...

Implementierungsmethode für den React State-Zustand und Lebenszyklus

1. Methoden zur Implementierung von Komponenten:組...

Methode zur Optimierung von MySQL-Gruppenabfragen

MySQL behandelt GROUP BY- und DISTINCT-Abfragen i...

Installation und Verwendung von Vue

Inhaltsverzeichnis 1. Vue-Installation Methode 1:...

Detaillierte Analyse des MySQL 8.0-Redo-Logs

Inhaltsverzeichnis Vorwort Generierung eines Redo...

Detaillierte Einführungshinweise zu Vue

Inhaltsverzeichnis 1. Einleitung 2. Erster Eindru...

Beispiele für die Verwendung von HTML-Listen-Tags dl, ul, ol

Code kopieren Der Code lautet wie folgt: <!-- ...