nginx - En utilisant ngx_http_limit_conn_module selon le tutoriel, le nombre de connexions simultanées de l'hôte virtuel ne peut pas être limité
ringa_lee
ringa_lee 2017-05-16 17:14:08
0
3
743

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 ?

ringa_lee
ringa_lee

ringa_lee

répondre à tous(3)
洪涛

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

limit_conn_zone $binary_remote_addr zone=perserver:10M; 
La forme de

$binary_remote_addr

signifie 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.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal