今朝の最低気温は25.3℃。梅雨明けした26日午前中から一度も25℃を下まわらない真夏が戻ってきた。今日も最高気温32.9℃と真夏日だったものの、海風があったおかげで日中も意外と過ごし易く、18日からのエアコン運休継続中なり。
転ばぬ先の杖、忘れる前の備忘録。
Webサーバapacheの帯域を制御する拡張モジュールBandwidth Mod(mod_bw)。apache1.x系向けだったver0.6まではbw_modという名称だったが、apache2.0系対応となったver0.7以降は慣例に従ってmod_bwとなっている。
モジュールの作成方法はスーパーユーザーで
apxs -i -a -c mod_bw.cとすべし。きっと/usr/local/apache2/modulesにインストールされるので、後はapacheをrestartすれば良い。
なおapacheをrestartした時に
Undefined symbol "atomic_set"というエラーが出る場合がある。これはapacheの実行環境とapr開発環境のバージョンが一致していない為だ。取り敢えずmod_bw.cでAPR_MAJOR_VERSIONを見ている下記箇所を"#if 1"か"#if 0"で強制する事で回避するのが早い。
/* Compatibility for APR < 1 */
#if (APR_MAJOR_VERSION < 1)
#define apr_atomic_inc32 apr_atomic_inc
#define apr_atomic_dec32 apr_atomic_dec
#define apr_atomic_add32 apr_atomic_add
#define apr_atomic_cas32 apr_atomic_cas
#define apr_atomic_set32 apr_atomic_set
#endif
また、これまでは単純に
BandWidthModule Onだけで制限できたのだが、ver0.7以降は細かく管理できるようになった事から
BandWidthModule Onな感じで制限するコンテンツ形式まで列挙する必要がある。逆にこれまで同様に問答無用にガッツリ絞る場合は
AddOutputFilterByType MOD_BW text/html text/plain
BandWidthModule Onを加えれば良い。
ForceBandWidthModule On
ファイルの拡張子毎に制限するのは
LargeFileLimit [Type] [Minimum Size] [bytes/s]というオプションだ。詳細は同梱の
![[External]](/~yano/parts/extlink.png)
【参照】
●Bandwidth Limiter For Apache(mod_bw) http://bwmod.sourceforge.net/