apache2で送受信する帯域を制限する方法を紹介します。 制限する方法は2通りです。
それぞれapacheのモジュールを読み込む事により実現します。
apacheではなくLinux上で帯域を制限する方法もありました。tc,cbq参照
まず、mod_limitipconnをダウンロードします。
CentOSでは、RPM pbone.net*1から、mod_limitipconnで検索するとRPM(CentOS5*2の場合、mod_limitipconn-0.22-3.0.el5.i386.rpm)が見つかります。
下記コマンドをroot権限で実行します。
rpm -ivh mod_limitipconn-0.22-3.0.el5.i386.rpm
httpd.confファイルを開きます。 まず、LoadModuleを追記して、limitipconnを有効にします。httpd.confファイルでLoadModuleが列記されている箇所に、下記1行を追記します。
LoadModule limitipconn_module modules/mod_limitipconn.so
下記設定により、testディレクトリ配下で1ユーザーあたり4つの接続(テキストは除く)に制限できます。
<Directory "var/www/test"> <IfModule mod_limitipconn.c> MaxConnPerIP 4 NoIPLimit text/* </IfModule> </Directory>
接続数の制限と同様に、RPMをダウンロードします。 RPM pbone.netから、mod_bwで検索するとRPM(CentOS5の場合、mod_bw-0.8-1.el5.i386.rpm)が見つかります。
下記コマンドをroot権限で実行します。
rpm -ivh mod_bw-0.8-1.el5.i386.rpm
httpd.confファイルを開きます。 まず、LoadModuleを追記して、mod_bwを有効にします。httpd.confファイルでLoadModuleが列記されている箇所に、下記1行を追記します。
LoadModule bw_module modules/mod_bw.so
下記設定により、testディレクトリ配下で帯域は10000bite/sec*3に制限できます。
<Directory "var/www/test"> <IfModule mod_bw.c> BandWidthModule On ForceBandWidthModule On BandWidth all 10000 </IfModule> </Directory>