Comment limiter dynamiquement la vitesse de chargement / téléchargement de nginx par utilisateur?

8

Il est possible de limiter la vitesse en utilisant la limite de taux sur un emplacement spécifique.

Cependant, comment pouvons-nous le faire de manière dynamique?

Supposons que vous ayez des utilisateurs payants par rapport aux utilisateurs non rémunérés et que vous souhaitiez accorder une bande passante plus élevée aux utilisateurs payants.

Nous aurions besoin de vérifier dynamiquement la base de données et de permettre une certaine vitesse pour ce groupe particulier d'utilisateurs.

Avez-vous un module nginx en tête?

Jonathan
la source

Réponses:

4

Oui, vous pouvez évaluer la limite sur un emplacement spécifique.

location /something/ { 
    set $limit_rate  4k; 
}

Vous pouvez également entourer la limite_rate avec des instructions comme if pour contrôler dynamiquement les taux. Voir ce lien pour plus de détails sur le taux limite: http://wiki.nginx.org/NginxHttpCoreModule#limit_rate

Il y a un autre module dont vous devez tenir compte: http://wiki.nginx.org/NginxHttpLimitZoneModule

Ce module vous permet de définir des limites de nombre de connexions. Donc, même si vous définissez une limite basse, s'ils peuvent simplement établir 10 connexions, votre limite n'a pas de sens.

Je suggère que les utilisateurs privés et publics obtiennent des liens différents afin que nginx puisse facilement distinguer les types d'utilisateurs et vérifier la sécurité dans votre couche d'application.

Grincheux
la source