Apacheで同時接続を制限するためのモジュール mod_limitipconn
2008 / 06 / 21 ( Sat )
Apacheで同時接続を制限するためのモジュールとしてmod_limitipconnがあります。
のように書いて、/download以下のファイル(テキスト形式のファイル以外)に対し1度に接続できる数を100セッションに制限することができます。
もし、100セッションを超えて101セッションめが/download以下のファイルにアクセスしたら、下図のようなエラー503(Service Temporarily Unavailable)を返します。

この時、/download以下のファイル毎にエラーメッセージを変えたいと思い、考えました。
LoadModule limitipconn_module libexec/mod_limitipconn.so
ExtendedStatus On
<IfModule mod_limitipconn.c>
<Location /download>
MaxConnPerIP 100
NoIPLimit text/*
</Location>
</IfModule>
ExtendedStatus On
<IfModule mod_limitipconn.c>
<Location /download>
MaxConnPerIP 100
NoIPLimit text/*
</Location>
</IfModule>
のように書いて、/download以下のファイル(テキスト形式のファイル以外)に対し1度に接続できる数を100セッションに制限することができます。
もし、100セッションを超えて101セッションめが/download以下のファイルにアクセスしたら、下図のようなエラー503(Service Temporarily Unavailable)を返します。

この時、/download以下のファイル毎にエラーメッセージを変えたいと思い、考えました。
まず、Apacheデフォルトのエラーメッセージを変更するには、以下のように書きます。
これで、/download以下のファイルへの接続数が100を越えた際には、/error/503.htmlが表示されます。
では、/download以下のcampaign.zipというファイルにアクセスした際には別のメッセージを表示させるには。
こう書きます。
<Location>ディレクティブに<Files>ディレクティブをネストすることはできないので、この部分を<Directory>ディレクティブに変更しています。その上で、<Files>でファイルを特定して、503の時に表示させるメッセージを変更するようにしています。
サーバー構築・運用に関わるプロフェッショナルの方々の体験談や解説がいっぱい集まった、
こちら↓のページも合わせてご参照ください。
LoadModule limitipconn_module libexec/mod_limitipconn.so
ExtendedStatus On
<IfModule mod_limitipconn.c>
<Location /download>
MaxConnPerIP 100
NoIPLimit text/*
ErrorDocument 503 /error/503.html
</Location>
</IfModule>
ExtendedStatus On
<IfModule mod_limitipconn.c>
<Location /download>
MaxConnPerIP 100
NoIPLimit text/*
ErrorDocument 503 /error/503.html
</Location>
</IfModule>
これで、/download以下のファイルへの接続数が100を越えた際には、/error/503.htmlが表示されます。
では、/download以下のcampaign.zipというファイルにアクセスした際には別のメッセージを表示させるには。
こう書きます。
LoadModule limitipconn_module libexec/mod_limitipconn.so
ExtendedStatus On
<IfModule mod_limitipconn.c>
<Directory "/home/httpd/html/download">
MaxConnPerIP 100
NoIPLimit text/*
ErrorDocument 503 /error/503.html
<Files campaign.zip>
ErrorDocument 503 /error/503-campaign.html
<Files campaign.zip>
</Directory>
</IfModule>
ExtendedStatus On
<IfModule mod_limitipconn.c>
<Directory "/home/httpd/html/download">
MaxConnPerIP 100
NoIPLimit text/*
ErrorDocument 503 /error/503.html
<Files campaign.zip>
ErrorDocument 503 /error/503-campaign.html
<Files campaign.zip>
</Directory>
</IfModule>
<Location>ディレクティブに<Files>ディレクティブをネストすることはできないので、この部分を<Directory>ディレクティブに変更しています。その上で、<Files>でファイルを特定して、503の時に表示させるメッセージを変更するようにしています。
サーバー構築・運用に関わるプロフェッショナルの方々の体験談や解説がいっぱい集まった、
こちら↓のページも合わせてご参照ください。
| ホーム |



