[概 要]
[対 策]
[Version : v0.6以前]
# cd /usr/local/src # wget http://ivn.cl/apache/files/source/bw_mod-0.6.tgz # tar zxfv bw_mod-0.6.tgz |
# cd bw_mod-0.6 # apxs -i -a -c bw_mod-0.6.c or # apxs2 -i -a -c bw_mod-0.6.c or # apxs2-prefork -i -a -c bw_mod-0.6.c |
(snip) LoadModule bw_module /usr/lib/httpd/modules/bw_mod-0.6.so <IfModule prefork.c> LoadModule cgi_module modules/mod_cgi.so </IfModule> <IfModule worker.c> LoadModule cgid_module modules/mod_cgid.so #LoadModule bw_module /usr/lib/httpd/modules/bw_mod-0.6.so </IfModule> |
[Version : v0.7以降]
# cd /usr/local/src # wget http://ivn.cl/apache/files/source/mod_bw-0.7.tgz # tar zxf mod_bw-0.7.tgz |
(snip) #define VERSION "0.7" #include "apr_buckets.h" #include "apr_strings.h" #include "apr_atomic.h" #include "apr_lib.h" #include "apr_shm.h" #include "apr_version.h" #include "ap_config.h" (snip) |
# cd mod_bw # apxs -i -a -c mod_bw.c or # apxs2 -i -a -c mod_bw.c or # apxs2-prefork -i -a -c mod_bw.c |
(snip) LoadModule bw_module /usr/lib/httpd/modules/mod_bw.so <IfModule prefork.c> LoadModule cgi_module modules/mod_cgi.so </IfModule> <IfModule worker.c> LoadModule cgid_module modules/mod_cgid.so #LoadModule bw_module /usr/lib/httpd/modules/mod_bw.so </IfModule> |
No. | ディレクティブ概要 | バージョン | |
〜0.6 | 0.7〜 | ||
1 | BandWidthModule [On|Off] 帯域制限する場合は、本設定を[On]にする。デフォルトは[Off]。 例: BandWidthModule On |
○ | ○ |
2 | BandWidthDebug [On|Off] デバッグ用のログ出力設定なので、デフォルトで無効なので本設定は不要。詳細ログが必要なら[On]にするが、大量のログがでるのであくまでデバッグ用とすること。 例: BandWidthDebug On |
○ | × |
3 | ForceBandWidthModule [On|Off] 本モジュールは、デフォルトで全てのリクエストに対して機能する。しかし、何らかのリクエストだけを帯域制限したいなら本ディレクティブを[Off]とし、別途出力フィルタで処理するファイル種別を指定する。 注:v0.7ではデフォルトが[Off]に変更になっているので、出力フィルタで処理するファイル種別を指定しなければ全てスルーになる。バージョンアップ時は注意。 例: ForceBandWidthModule Off AddOutputFilterByType BW_MOD text/html text/plain |
○ | ○ 注 |
4 | BandWidth [From] [bytes/s] 本パラメータで、転送要求元毎に転送量を bytes/s で指定する。転送要求元としては、ホスト名やドメイン名、IPアドレス、ネットワーク(i.e 192.168.0.0/24 or 192.168.0.0/255.255.255.0)、または全ての相手を指定できる。転送量は bytes/s で指定するが、0は無制限を意味する。 例: BandWidth localhost 10240 BandWidth 192.168.0.0/24 0 |
○ | ○ |
5 | MinBandWidth [From] [bytes/s] 本パラメータで、転送要求元毎に最低転送量を bytes/s で指定する。転送要求元としては、ホスト名やドメイン名、IPアドレス、ネットワーク(i.e 192.168.0.0/24 or 192.168.0.0/255.255.255.0)、または全ての相手を指定できる。最低転送量は bytes/s で指定するが、これは、1クライントしかいない場合はBandWidthで指定した転送量で制御されるが、複数クライアントが存在するばあいは、各クライントは本設定値に制限され均等化される。本設定値の0は256bytes/sを意味し、-1はBandWidthで指定した転送量で制御される。 例: BandWidth all 102400 MinBandWidth all 50000 1クライアント時は100kbytes/sであるが、複数クライントになるとそれぞれが50kbytes/sに制限される。 BandWidth all 50000 MinBandWidth all -1 クライアント数に関係なく全てのクライアントに50kbytes/sで転送しようとする。 |
○ | ○ |
6 | LargeFileLimit [Type] [Minimum Size] [bytes/s] 本ディレクティブは、ファイル種別やサイズによって転送量制御を行うことができる。[Type]では対象とするファイルの拡張子、または「* (全て)」を指定する。[Minimum Size]では帯域制御するファイルサイズをkbyte単位で指定し、最後のパラメータは転送量は bytes/s で指定する。 例: LargeFileLimit .avi 500 10240 500kbyte以上の.aviファイルは 10kbytes/sで転送量を制限する。 |
○ | ○ |
7 | BandWidthPacket [Size] 本ディレクティブは本モジュールが使用するパケットサイズで、自動調整されるので基本的に設定不要。 |
○ | ○ |
8 | BandWidthError [Error] MaxConnectionを指定して最大値に到達したときに、デフォルトでは503エラーが返されるが、エラーコードをカスタマイズする場合に本ディレクティブを使用する。 [Error]でエラーコードを指定するが、300から599の間のどんなエラーコードも使用できる。エラーコードを510として、オリジナルメッセージを出す例は以下のとおりである。但し、エラーメッセージのページサイズが1024バイト以下だとうまく表示できないことがあるようです。 例: ErrorDocument 510 /errors/maxconexceeded.html BandWidthError 510 |
○ | ○ |
9 | MaxConnection [From] [Max] 本パラメータで、転送要求元毎の最大接続クライアント数を指定する。転送要求元としては、ホスト名やドメイン名、IPアドレス、ネットワーク(i.e 192.168.0.0/24 or 192.168.0.0/255.255.255.0)、または全ての相手を指定できる。 最大接続クライアント数に達すると、503エラーが返される(上記参照) 例: BandWidth all 0 MaxConnection all 20 or BandWidth all 0 BandWidth 192.168.0.0/24 10240 MaxConnection all 20 MaxConnection 192.168.0.0/24 5 |
○ | ○ |