web-dev-qa-db-ja.com

ユーザーごとにnginxのアップロード/ダウンロード速度を動的に制限するにはどうすればよいですか?

特定の場所のレート制限を使用して速度を制限することが可能です。

しかし、どうすれば動的にそれを行うことができますか?

有料ユーザーと非有料ユーザーがいて、有料ユーザーにより高い帯域幅を提供したいとします。

データベースを動的にチェックインし、この特定のユーザーグループに特定の速度を許可する必要があります。

Nginxモジュールを念頭に置いていますか?

8
Jonathan

はい、特定の場所でレート制限を行うことができます。

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

また、limite_rateをifのようなステートメントで囲んで、レートを動的に制御することもできます。制限レートの詳細については、このリンクを参照してください: http://wiki.nginx.org/NginxHttpCoreModule#limit_rate

注意すべき別のモジュールがあります: http://wiki.nginx.org/NginxHttpLimitZoneModule

このモジュールを使用すると、接続数の制限を設定できます。したがって、下限を設定しても、接続が10回しかない場合、制限は意味がありません。

Nginxがユーザーのタイプを簡単に区別し、セキュリティのためにアプリケーションレイヤーで確認できるように、プライベートユーザーとパブリックユーザーが異なるリンクを取得することをお勧めします。

4
Grumpy