
私は CentOS 6.4 を使用しており、Plesk v11.5.30 を使用していますが、必ずしも Plesk 経由で実行する必要はありません。
特定の Web サイトへの接続速度を制限したいと考えています。しかし、Plesk で提供されるオプションは「最大帯域幅使用量」と「接続制限」だけです。
最大帯域幅使用量はドメインが使用する総帯域幅で、接続数は接続数です(当然)。私がやりたいのは、ドメインにアクセスしている人の数に関係なく、速度を 200kb/s に制限することです。アクセスしている人が 1 人だけだったとしても、その人がすべての帯域幅を使用できることは望ましくありません。200kb/s に制限したいのです。
すべての個別の接続を 200kb/s に制限して、誰も 200kb/s を超えて使用できないようにする方法はありますか?ただし、トラフィックが多い場合は 200kb/s 未満を使用する可能性があります。
Plesk 固有のものにならないように、これは私の conf にある内容です。他に使用できるパラメータがある場合は、手動で変更してもかまいません。
<IfModule mod_bw.c>
BandwidthModule On
ForceBandWidthModule On
Bandwidth all "0"
MaxConnection all "0"
BandWidthError 510
</IfModule>
答え1
このモジュールを使ったことはないのですがドキュメントかなり簡単そうです。
ディレクティブは<VirtualHost>
ブロック内で有効であり、その場合のみその仮想ホストに適用されます。また、ディレクティブは構成の上位部分から継承されないように見えるため、関連するすべてのディレクティブを仮想ホストに配置する必要があります。
現在の設定では、帯域幅制限が「0」に設定されており、これは制限がないことを意味します。必要なのは 200KB です (キロビットではなくキロバイトを意味していると思います)。
制限したい仮想ホストに以下を入力します:
BandwidthModule On
ForceBandWidthModule On
Bandwidth all 204800
デフォルトはMinBandwidth
256 バイト/秒なので、800 人の同時ユーザーを処理でき、そのうちの誰かがエラー メッセージを受け取ることはMinBandwidth all 1024
ありません。256 バイト/秒では少し低いと思われる場合は、追加することもできます。これにより、同時リクエストが 200 件を超えると、201 番目のリクエストにはリクエストしたページではなくエラー メッセージが表示され、それ以前の 200 件はすべて少なくとも 1 KB/秒が保証されます。
<IfModule>
通常、これらのブロックは、間違いを隠し、mod_bw がロードされていないときに動作していると思わせるだけなので、私は気にしません。
答え2
LargeFileLimit を使用してこれを理解しました:
<IfModule mod_bw.c>
BandwidthModule On
ForceBandWidthModule On
Bandwidth all "52428800"
MaxConnection all "400"
LargeFileLimit * 1024 204800
BandWidthError 510
</IfModule>
これは、ドメインが 50 MB の帯域幅 (52428800) に制限され、一度に 400 の接続しか持てず、1 MB を超えるファイルは 200 kb/s (204800) に制限されることを意味します。
後でこれを読む人のために、* の代わりに拡張子を付けて、zip、rar、avis などだけに制限することもできます。