J'ai suivi http://www.jb51.net/article/7... pour configurer le fichier nginx.conf afin de limiter le nombre de connexions simultanées à l'hôte virtuel. Voici le contenu principal de nginx.conf.
http{
limit_conn_zone $server_name zone=perserver:10m;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 54321;
server_name localhost;
limit_conn perserver 100;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location /status {
stub_status on;
access_log off;
}
}
}
Une fois la configuration terminée, rechargez le fichier de configuration et utilisez l'outil ab d'Apache pour effectuer un test de stress sur 192.168.3.161:54321/index.html Le code du test de stress est le suivant :
/usr/bin/ab -c 2000. -n 100000 http://192.168.3.161:54321/in...
对网站加压时,利用浏览器访问192.168.3.161:54321/status观察并发连接数,发现Active connections依然大于100,如下图所示。
Excusez-moi, où est le problème avec ma configuration ?
J'ai changé ma façon de penser.
Le code de limite écrit auparavant est : limit_conn_zone $server_name zone=perserver:10m ;
En utilisant la variable $server_name intégrée de nginx, il ne peut pas limiter avec succès le nombre de connexions simultanées.
J'ai changé pour : limit_conn_zone $server_port zone=perserver:10m;
J'ai réussi à limiter le nombre de connexions simultanées sur un certain port
Vous pouvez utiliser
La forme designifie utiliser l'adresse IP de l'utilisateur, en utilisant $binary_remote_addr comme clé, et l'adresse IP a une signification restrictive. Le $server_name que vous avez écrit ci-dessus ne convient pas comme critère pour juger du nombre de connexions utilisateur
Étant donné que ce module est exécuté lors de l'étape PREACCESS, il doit avoir eu lieu lors de l'étape de traitement de la requête http après l'établissement de la connexion TCP. La valeur Connexions actives ci-dessus doit faire référence au nombre de connexions TCP simultanées. Même si le nombre de concurrence est dépassé et que 503 est renvoyé, cela est basé sur une connexion TCP réussie.