我们如何动态限制每个用户的 nginx 上传/下载速度?

Jon*_*han 10 php nginx bandwidth-control

可以使用特定位置的速率限制来限制速度。

但是,我们如何动态地做到这一点?

假设您有付费用户与非付费用户,并且您想为付费用户提供更高的带宽。

我们需要动态地检查数据库并为这个特定的用户组提供一定的速度。

你有什么 nginx 模块吗?

Gru*_*mpy 4

是的,您可以限制特定位置的速率。

location /something/ { 
    set $limit_rate  4k; 
}
Run Code Online (Sandbox Code Playgroud)

您还可以使用 if 之类的语句包围 limite_rate 来动态控制速率。有关限制速率的更多详细信息,请参阅此链接: http: //wiki.nginx.org/NginxHttpCoreModule#limit_rate

您应该注意另一个模块: http: //wiki.nginx.org/NginxHttpLimitZoneModule

该模块允许您设置连接计数的限制。所以,即使你设置了一个低限制,如果他们只能建立10个连接,你的限制就毫无意义了。

我建议你让私人和公共用户获得不同的链接,以便nginx可以轻松区分用户类型并在你的应用层进行验证以确保安全。