Limitation de débit dans Nginx

Comment limiter les connexions, les requêtes et la vitesse de réponse dans Nginx.

Nginx embarque des outils intégrés robustes pour maîtriser le trafic. Que vous gériez des clients abusifs, protégiez un point de téléchargement ou empêchiez un utilisateur de monopoliser toute la bande passante — ces directives répondent à tous les cas de figure. Tout se configure dans le fichier de configuration Nginx.

1. Limitation du nombre de connexions simultanées

Définissez d'abord une zone en mémoire partagée dans le bloc http à l'aide de limit_conn_zone. C'est là que Nginx suit l'état des connexions par IP client :

http {
    limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
}

Puis, dans le bloc location concerné, appliquez la limite en référençant cette zone et en définissant le nombre maximal de connexions simultanées par IP :

location /download/ {
    limit_conn conn_limit_per_ip 5;
}

2. Limitation du taux de requêtes

Dans le bloc http, utilisez limit_req_zone pour définir une zone et fixer un taux de requêtes autorisé :

http {
    limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=5r/s;
}

Dans le bloc location, référencez la zone et définissez une tolérance de burst — le nombre de requêtes supplémentaires pouvant être mises en file d'attente avant que Nginx ne commence à les rejeter :

location /download/ {
    limit_req zone=req_limit_per_ip burst=10;
}

Nos produits et services

Hébergement webFonctionne sur des disques NVMe ultra-rapides. Convient aux sites de toute complexité.
Commande
VPSInfrastructure cloud flexible avec accès root complet.
Commande
Serveurs dédiésServeurs physiques pour une performance maximale.
Commande

3. Limitation de la vitesse de transfert des réponses

La directive limit_rate plafonne la vitesse de réponse en octets par seconde par connexion. À noter : si un client ouvre deux connexions simultanément, son débit effectif sera le double de la limite.

location /download/ {
    limit_rate 50k;
}

Si vous préférez laisser passer le premier bloc de données à pleine vitesse avant d'appliquer le bridage, combinez-la avec limit_rate_after :

location /download/ {
    limit_rate_after 1m;
    limit_rate 50k;
}

Dans cet exemple, le premier mégaoctet est servi à pleine vitesse — ensuite, Nginx applique le plafond de 50 Ko/s.

Aide

Une question ou besoin d'un coup de main ? Écrivez-nous via le système de tickets — nous sommes toujours là pour vous aider !

Besoin d’aide?Nos ingénieurs vous aideront gratuitement pour n’importe quelle question en quelques minutesNous contacter