主に IT 技術を整理するためにメモ的に書き溜めています。少しだけフリーソフトもあるよ。コメントを残すには、 facebook を使ってください。

Apache2 で Band Width を制御したい

最終更新日 2007-04-28 18:55:23 (1年以上前の記事です)

Apache2 で IP やユーザごとに同時接続数や帯域を制限するために、 mod_cband っていうモジュールを使ってみた。
かなり細かい設定もできるし、ステータス画面は非常にシンプルだけど分かりやすいのでおすすめです。
環境は CentOS-4.4 でパッケージは無さそう。後で、ライセンスだけ確認して RPM 作るかも。
ダウンロードは以下からできる。
http://cband.linux.pl/

インストール

CentOS の apache は aspx で作成されてるので、後々のモジュール追加も問題なく行える。以下の手順で行う。
$ tar zxvf mod-cband-0.9.7.5.tgz
$ cd mod-cband-0.9.7.5
$ ./configure
$ make
# make install

これで /usr/lib/httpd/modules/ に mod_cband.so がインストールされる。
次に apache に cband がロードされるように設定を行う。 apache の設定ディレクトリに mod_cband.conf みたいなファイルを作成する。

# vi /etc/httpd/conf.d/mod_cband.conf
LoadModule cband_module       /usr/lib/httpd/modules/mod_cband.so

<Location /cband-status>
    SetHandler cband-status

    AuthName     "cband status"
    AuthType     Basic
    AuthUserFile /var/www/.htpasswd
    Require user valid-user
</Location>

ついでにアクセス制限の設定もしてあるけど、必要なければ削除で。
ここまでして、 apache を reload すると /cband-status にアクセスすることで帯域の状態を確認できる画面が表示される。

設定

cband は細かすぎる位設定が可能。
  • 最大ダウンロードサイズ
  • 最大スピード
  • 同時接続数
  • もっと色々
これらが、 IP 毎、ドメイン毎、ユーザ毎に設定できる。とりあえず今回やったのは、各ドメインの IP あたりの接続数とスピードを制限した。

CBandSpeed

サーバに対する全体の接続に対して制限を設けるには CBandSpeed を使用する。
CBandSpeed 1024 10 5
上記設定は、Web サーバへの接続に対して最大の転送速度が 1024kb/s で一秒間に 10 リクエスト、同時接続数を 5 に制限している。この設定は <Virtualhost> コンテキストに設定できる。

CBandRemoteSpeed

クライアントの IP 毎に速度とリクエスト数とコネクション数を制限するには CBandRemoteSpeed を使う。
CBandRemoteSpeed 1024kb/s 10 5
上記設定は、 1 つの IP からの接続に対して最大の転送速度が 1024kb/s で一秒間に 10 リクエスト、同時接続数を 5 に制限している。この設定は <Virtualhost> コンテキストに設定できる。 それ以外は設定した際に追記する。
最終更新日 2007-04-28 18:55:23

コメント このエントリーをはてなブックマークに追加

フリーソフトウエア
EnjoiFLV
EnjoiPacket
EnjoiCrypto
ランキング
rank2, rank3, rank7, rank10, rank11
todo メモ
facebook 対応
ページ処理
RSS feed
検索機能
認証いる?
更新日表示
実はカテゴリ機能
多言語
実はユーザ機能
ソースその内公開
動作環境メモ
php-5.1.6 with PDO
SQLite-3.3
IE6
FireFox-1.5
RSS
非認証

検索
Google