Web サーバーの構築 : Apache の USE フラグ
一般的なUSEフラグ
以下は他のパッケージでも使用している一般的なUSEフラグです。
- apache2
- Apache1.x 系列と Apache2.x 系列の両方をサポートするパッケージに対して、Apache2.x サポートを選択するように指示するものです。Apache2.x を利用する際は必ず指定してください。
- debug
- コンパイル時にデバッグ情報を生成します。通常は指定する必要はありません。
- doc
- ドキュメントをインストールします。私は指定していないのでわかりませんが、おそらくインストール直後に表示されるデフォルトページからリンクされる Apache のマニュアルをインストールするかどうかが選択できるのだと思います。同じものが Web 上で公開されているので、普通は指定する必要はないでしょう。
- ldap
- LDAP サポートを有効にします。LDAP を利用している場合は指定しましょう。
- no-htdocs
- デフォルトのページを "/var/www/localhost" ではなく "/usr/share/doc/gentoo-webroot-default-*" にインストールします。"/var/www/localhost" に独自のコンテンツを起きたい場合に指定します。
- no-suexec
- CGI スクリプトを任意のユーザー権限で動作させる suEXEC 機能を無効にします。suEXEC は適切に設定しないとセキュリティー上の脅威になることが多いので、必要なければ無効にしておいたほうがよいでしょう。
- ssl
- SSL サポートを有効にします。
- static-modules
- 各モジュールを静的にリンクします。起動が速くなるという利点がありますが、設定ファイルでモジュールを取捨選択することはできなくなります。
- threads
- マルチスレッドサポートを有効にします。大量のリクエストを効率よく処理することが可能になります。以下の MPM の説明もご参照ください。
MPM の選択
Apache には上記の一般的なUSEフラグのほかに、MPM を選択するフラグがいくつかあります。これらは互いに排他的で、いずれかひとつしか同時に指定できません。以下、これらのフラグに関して少し詳しくご紹介します。
MPM とは
MPM とは、「マルチプロセッシングモジュール」の略で、クライアントからのリクエストを受け付けて、それを処理するプロセスやスレッドを起動するという非常に重要な役割を担当します。Windows 版などで OS ネイティブなネットワークレイヤを利用するためにコアモジュールから分離されたようです。同時に Linux(UNIX) 上でも、サイトの規模などに応じてスレッドの利用方法を最適化できるという利点もあります。
MPM に関する詳細は Apache のドキュメントをご参照ください。
MPM を選択する USE フラグ
- mpm-prefork
- スレッドを使わずに、リクエストごとにプロセスを生成するという従来の方法で処理します。安定性に優れているので、小規模のサイトはこの指定でよいと思います。thread USEフラグ が無効になっているときはこれがデフォルトです。
- mpm-worker
- プロセスとスレッドの双方を利用するハイブリッド型の MPM です。基本的にはひとつのプロセスが持つスレッドが一定数を超えたときはプロセスを生成するような仕組みのようです。これにより、処理効率を高めながら安定性を保持しています。thread USEフラグ が有効な場合のデフォルトです。
- mpm-leader
- mpm-worker のバリエーションで、スレッドのマネジメントに "Leader/Followers" デザインパターンを使っています。なんと言いつつ、私にはよくわかりません(^^ヾ。現在はまだ試験実装なので、趣味で試してみる程度に抑えたほうが無難でしょう。
- mpm-threadpool
- 多数のアイドル状態のスレッドを保持して、クライアントからのリクエストがあったときにすぐに応答できるようにする MPM です。多くのリソースを消費する代わりに効率的な処理が行える・・・はずなのですが、現在はまだパフォーマンスが出ていないようです。こちらも試験実装なので、実用には向きません。
- mpm-peruser
- バーチャルホストごとに別々のユーザー/グループで Apache を動作させる MPM です。これにより、よりセキュアなバーチャルホストを実現できます。ただし、バーチャルホストごとにプロセス/スレッドをプールするため、効率は若干落ちるようです。
こんなところでしょうか。Apache のUSEフラグ設定はパフォーマンスやセキュリティーに大きく影響しますので、適切に設定したいところですね。
|left:Apache のより実用的な設定|right:PHP のインストール|
> | center:HTTP に戻る |
Recommendations
Books
「Closure Library」の入門書です。
詳しくはこちらの記事をどうぞ!
詳しくはこちらの記事をどうぞ!
Categories
一歩進んだ Web アプリケーション活用術
Opera & Firefox をディープに使いこなす
WebOS 時代のプログラミング・ノウハウ
Gentoo Linux と VMware による個人サーバー構築記
オープンソース・アプリケーションで快適 Web ライフ
その他の記事
Recent Articles
この記事にコメントする