Mit der Popularität und Entwicklung von Webanwendungen ist es besonders wichtig, die Anzahl der gleichzeitigen Verbindungen zu Webdiensten zu begrenzen, um die Benutzererfahrung zu gewährleisten und die Servicestabilität zu gewährleisten. Als hervorragender Webserver und Reverse -Proxy -Server bietet NGINX eine Vielzahl von Konfigurationsoptionen, die uns helfen können, diese Anforderung zu erreichen. In diesem Artikel wird eingeführt, wie die Anzahl der gleichzeitigen Verbindungen zu einem Webdienst durch Konfiguration eines NGINX -Proxy -Servers einschränken und spezifische Codebeispiele bereitgestellt werden.
Zunächst müssen wir Nginx installieren. Hier ist ein Beispielbefehl zur Installation von nginx auf dem Ubuntu -Betriebssystem:
<span class="fun">$ sudo APT Update</span>
<span class="fun">$ sudo apt install nginx</span>
Nach Abschluss der Installation müssen wir die NGINX -Konfigurationsdatei öffnen und bearbeiten:
<span class="fun">$ sudo nano /etc/nginx/nginx.conf</span>
Fügen Sie als nächstes die folgende Konfiguration in den HTTP -Block hinzu:
http {
...
# Begrenzen Sie die Anzahl der gleichzeitigen Verbindungen auf100
limit_conn_zone $binary_remote_addr zone=concurrent:10m;
server {
...
# Begrenzen Sie die Anzahl der gleichzeitigen Verbindungen auf10
limit_conn concurrent 10;
}
}
In der obigen Konfiguration wird `limit_conn_zone` verwendet, um einen gemeinsam genutzten Speicherbereich (Größe 10 MB) zu definieren, um die Anzahl der gleichzeitigen Verbindungen pro Client zu speichern. `limit_conn` wird verwendet, um die maximale Anzahl der gleichzeitigen Verbindungen in jedem Serverblock zu definieren, z. B. auf 10 festgelegt.
Nach Abschluss der Konfiguration müssen wir den Nginx -Dienst neu starten, um die Konfiguration in Kraft zu setzen:
<span class="fun">$ sudo systemctl starten nginx neu</span>
Um zu überprüfen, ob die Konfiguration in Kraft ist, können Sie den Befehl "AB` (Apache Benchmark) für Spannungstests verwenden. Hier ist ein Beispiel, das den Befehl "ab" verwendet:
<span class="fun">$ ab -c 100 -n 1000 http: // localhost/</span>
Im obigen Beispiel bedeutet `-c 100` die Anzahl der gleichzeitigen Anforderungen 100 und` -n 1000` bedeutet die Gesamtzahl der Anforderungen 1000. Wenn die Konfiguration korrekt ist, wird die folgende Ausgabe angezeigt:
Concurrency Level: 100
Time taken for tests: 10.000 seconds
Complete requests: 1000
Failed requests: 0
Total transferred: 158000 bytes
...
Durch rational Konfiguration der gleichzeitigen Verbindungsbeschränkungen des NGINX -Proxy -Servers können die durch übermäßigen Verbindungen verursachten Leistungsprobleme durch Webdienste effektiv vermieden werden. Die Konfigurationsbeispiele in diesem Artikel helfen den Benutzern, diese Funktion problemlos zu implementieren. Abhängig von den tatsächlichen Anforderungen müssen Sie diese Konfigurationen möglicherweise weiter anpassen. Ich hoffe, dieser Artikel ist für Sie hilfreich!