イントラネットなどでたてた Web サーバでサービスするとき,Linux を使用していれば問題ないが,Windows をつかうと最大同時接続数に注意をはらう必要がある. Home Edition や Professional Edition の Windows には同時接続数が 5 ~ 10 という制限があり,それを厳密に解釈すると Apache の設定をそれにあわせておく必要があるようだ.
「[Apache-Users 2303] Re: WinXPで動かすときのライセンス問題(Re: はじめまして。)」 には,Microsoft にといあわせてえられた回答として,同時接続数が 10 台に制限されているばあいについて,つぎのように書いてある.
5.10台の制約については、接続される台数が10台に限定できるなら、問 題は無い。11台以上の接続があったとき、ライセンス違反となる。 クライアントがプロキシ、NATをサポートするルーターなどを経由してア クセスしている場合、その向こう側にいる実際の台数がカウントされる台 数である。 11台目以降のアクセスに対しては、サーバーとするコンピュータに入る 前に、待たせるのではなく、サービスを拒否するなら、問題は無い。
つまり,制限台数をこえるアクセスは拒否する必要があるということだ. ユーザ数がかぎられたイントラネットで実際にこの制限台数をこえる同時アクセスがおこる確率はひくい. したがってサーバ・ソフトウェアで制限しなくても違反がおこる可能性はひくいが,厳密にいえばつぎのような設定が必要だということになる.
Apache についていえば,httpd.conf ないし httpd-mpm.conf というファイルのなかで MaxClients というパラメタが指定されている. てもとにある Apache 2.2 の httpd-mpm.conf をみると,その値は 150 となっている. これを Home Edition なら 5,Professional なら 10 にすればよいということだろうか? ところが,これを制限してもユーザはまたされるだけで,アクセスを拒否されることはないようだ. もっとべつの設定が必要なようだ.
「apacheの同一ホストによる同時接続数を制限する」 などをみると Apache の mod_limitipconn というモジュールをつかって接続数を制限する方法が書いてある. つまり,このモジュールをくみこんで,つぎのような設定をする.
<Location /> MaxConnPerIP 10 </Location>
これはまだためしていないので,ただしく動作するのかどうか私にはわからない.
関連ページ: