ユーザーがapache2リバースプロキシを介してトンネリングされたファイルをダウンロードするWebサービスがあります。
mod 書き換えと P フラグを書き換えマップと組み合わせて使用しています。
基本的には次のようになります。
<Location /my-identifier>
RewriteEngine on
RewriteRule /my-identifier/(.*) ${my-rewrite-map:$1} [P]
</Location>
mod_bandwidth などを使用して、サーバーごとに 1 つの接続または 1 つの IP アドレスの帯域幅を制限できることを知っています。
ただし、制限を特定のユーザー (つまり、多くのトラフィックを作成し、公正な使用量を超えたユーザー) に対してのみ有効にしたいと考えています。
また、複数のサーバーにまたがりたいと思っています。
それが役立つ場合は、カスタム環境変数を設定することは可能です (エンコードできる URL を完全に制御し、書き換えルールを使用して設定できます)。
基本的に私が望むのは、たとえば、使用する接続の数や接続するサーバーの数に関係なく、制限に達したユーザーが 5 mbps の速度しか得られないことです。
それはどういうわけか可能ですか?モジュールはありますか?
私の考えは、サーバーがIPごとのトラフィック統計を報告する集中型データストアです。おそらくある種の RRD データ構造です。次に、指定された時間間隔 (たとえば、最後の 60 秒) で IP のトラフィックを選択し、それに応じてスロットル係数を適用できます。
しかし、私はこれをすべて自分でやりたいとは思っていません。できますが、数か月かかるでしょう...また、Apacheに縛られていません。私は同じことのためにNginxサーバーも使用しています.Nginxに何かあれば、それに切り替えることができます!