web-dev-qa-db-ja.com

接続速度を制限する方法

私はCentOS6.4を使用しており、Plesk v11.5.30を使用していますが、必ずしもpleskを介して実行する必要はありません。

接続速度を特定のWebサイトに制限したいと考えています。ただし、Pleskが提供するオプションは、「最大帯域幅使用量」と「接続制限」のみです。

最大帯域幅使用量はドメインによって使用される合計帯域幅であり、接続は接続数です(明らかに)。私がやりたいのは、ドメインにアクセスしている人の数に関係なく、速度を200kb/sに制限することです。 1人だけがアクセスしている場合でも、すべての帯域幅を使用できるようにしたくはありません。200kb/ sに制限してください。

個々の接続をすべて200kb/sに制限して、誰も200kb/sを超えて使用できないようにする方法はありますが、トラフィックが多い場合は、200kb/s未満を使用する可能性がありますか?

これが面倒なことを避けるために、これは私の設定にあるものであり、使用できる他のパラメーターがある場合は手動で変更できます。

<IfModule mod_bw.c>
    BandwidthModule On
    ForceBandWidthModule On
    Bandwidth all "0"
    MaxConnection all "0"
    BandWidthError 510
</IfModule>
4
John Mellor

LargeFileLimitを使用してこれを理解しました。

<IfModule mod_bw.c>
BandwidthModule On
ForceBandWidthModule On
Bandwidth all "52428800"
MaxConnection all "400"
LargeFileLimit * 1024 204800
BandWidthError 510
</IfModule>

これは、ドメインが50mbの帯域幅(52428800)に制限され、一度に400の接続しか持てず、1mbを超えるファイルは200kb/s(204800)に制限されることを意味します。

これを後で読む人のために、*の代わりに拡張子を付けて、zip、rar、avisなどを制限することもできます。

2
John Mellor

私はこのモジュールを使用したことがありませんが、 ドキュメント はかなり単純なようです。

ディレクティブは<VirtualHost>ブロック内で有効であり、その場合にのみその仮想ホストに適用されます。また、構成の上位部分から継承しないように見えるため、関連するすべてのディレクティブを仮想ホストに配置する必要があります。

現在の設定では、帯域幅の制限を「0」に設定しています。これは、制限がないことを意味します。 200KBが必要です(キロビットではなくキロバイトを意味していると思います)。

これを制限する仮想ホストに配置します。

BandwidthModule On
ForceBandWidthModule On
Bandwidth all 204800

デフォルトのMinBandwidthは256バイト/秒なので、800人の同時ユーザーを処理してから、いずれかのユーザーがエラーメッセージを受け取るようになります。 256バイト/秒が少し低いと思われる場合は、MinBandwidth all 1024を追加することもできます。これは、200を超える同時リクエストがある場合、201番目にリクエストされたページの代わりにエラーメッセージが表示されることを意味します。その前の200は、少なくとも1KB /秒が保証されます。

私は通常それらの<IfModule>ブロックを気にしません。なぜならそれらがすることはすべてあなたの間違いを隠し、ロードされていないときでもmod_bwが機能していると思わせるからです。

4
Ladadadada