Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konfiguriere ich den Nginx-Proxyserver, um die Anzahl gleichzeitiger Verbindungen zu einem Webdienst zu begrenzen?

Wie konfiguriere ich den Nginx-Proxyserver, um die Anzahl gleichzeitiger Verbindungen zu einem Webdienst zu begrenzen?

王林
王林Original
2023-09-05 09:44:011632Durchsuche

Wie konfiguriere ich den Nginx-Proxyserver, um die Anzahl gleichzeitiger Verbindungen zu einem Webdienst zu begrenzen?

Wie konfiguriere ich den Nginx-Proxyserver, um die Anzahl gleichzeitiger Verbindungen für einen Webdienst zu begrenzen?

Einführung:
Bei der Entwicklung von Webanwendungen ist es zur Gewährleistung der Benutzererfahrung und der Dienststabilität von entscheidender Bedeutung, die Anzahl gleichzeitiger Verbindungen von Webdiensten zu begrenzen. Als leistungsstarker Webserver und Reverse-Proxy-Server bietet Nginx eine Fülle von Konfigurationsoptionen, mit denen wir die Anzahl gleichzeitiger Verbindungen problemlos begrenzen können. In diesem Artikel wird erläutert, wie Sie den Nginx-Proxyserver konfigurieren, um die Anzahl gleichzeitiger Verbindungen für den Webdienst zu begrenzen, und entsprechende Codebeispiele bereitstellen.

1. Nginx installieren:

Zuerst müssen wir Nginx installieren. Das Folgende ist ein Beispielbefehl zum Installieren von Nginx unter Ubuntu:

$ sudo apt update
$ sudo apt install nginx

2. Konfigurieren Sie den Nginx-Proxyserver:

  1. Öffnen Sie die Nginx-Konfigurationsdatei:

    $ sudo nano /etc/nginx/nginx.conf
  2. Fügen Sie die folgende Konfiguration im http-Block hinzu:

    http {
     ...
     
     # 限制并发连接数为100
     limit_conn_zone $binary_remote_addr zone=concurrent:10m;
     
     server {
         ...
         
         # 限制并发连接数为10
         limit_conn concurrent 10;
     
         ...
     }
    }

In der obigen Beispielkonfiguration verwenden wir das limit_conn-Modul von Nginx, um die Anzahl gleichzeitiger Verbindungen zu begrenzen. Unter anderem wird limit_conn_zone用于定义一个共享内存区域,以存储并发连接数的状态信息,并设置了10m的大小;limit_conn verwendet, um die Anzahl gleichzeitiger Verbindungen in jedem Serverblock auf 10 zu begrenzen. Sie können es an die tatsächlichen Bedürfnisse anpassen.

3. Starten Sie den Nginx-Dienst neu:

Nach Abschluss der Konfiguration müssen wir den Nginx-Dienst neu starten, damit die Konfiguration wirksam wird:

$ sudo systemctl restart nginx

4. Überprüfen Sie die Konfiguration:

Wir können den Befehl ab verwenden, um zu überprüfen, ob Die Konfiguration ist wirksam. Das Folgende ist ein Beispiel für die Verwendung des ab-Befehls für Stresstests:

$ ab -c 100 -n 1000 http://localhost/

Im obigen Beispiel setzen wir die Anzahl gleichzeitiger Anfragen über den Parameter -c auf 100, die Gesamtzahl der Anfragen über den Parameter -n auf 1000. und die aufgerufene URL ist http://localhost /. Wenn die Konfiguration wirksam wird, sehen Sie eine Ausgabe ähnlich der folgenden:

Concurrency Level:      100
Time taken for tests:   10.000 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      158000 bytes
...

Fazit:
Durch die Konfiguration des Nginx-Proxyservers können wir die Anzahl gleichzeitiger Verbindungen zum Webdienst problemlos begrenzen. Das obige Konfigurationsbeispiel kann Ihnen dabei helfen, diese Funktion schnell zu implementieren. Natürlich müssen Sie möglicherweise einige Anpassungen und Modifikationen vornehmen, die auf bestimmten Nutzungsszenarien und Anforderungen basieren. Ich hoffe, dieser Artikel hilft Ihnen!

Referenzlink:

  • Offizielle Dokumentation von Nginx: https://nginx.org/en/docs/
  • Limit_conn-Modul von Nginx: https://nginx.org/en/docs/http/ngx_http_limit_conn_module.html

Das obige ist der detaillierte Inhalt vonWie konfiguriere ich den Nginx-Proxyserver, um die Anzahl gleichzeitiger Verbindungen zu einem Webdienst zu begrenzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn