Apacheのモジュール機能について

Linuxでwebサーバを構築する場合に使用するApacheでについてですが、各ディストリビューションの設定により登録されている機能が少しずつ違います。そこで、Debianのパッケージで配布されているApacheについて、組込まれているモジュールの機能を調べました。

調査対象のApacheのバージョンは、次の通りです。Debianでのコマンドは、「apache2clt」ですが、一般的には「httpd」です。

root@debian:~# apache2ctl -v
Server version: Apache/2.2.3
Server built:   Jan 27 2008 18:09:58

前回の組込みモジュールの確認をもとに、組込まれているモジュールの機能について調べてみました。

スポンサーリンク




モジュール一覧

core(識別子:core_module)
常に使用可能なサーバのコア機能。
mod_log_config(識別子:log_config_module)
クライアントからのリクエストをログに収集する機能。ログはカスタマイズ可能な書式で書かれ、ファイルに直接書いたり、外部プログラムに渡したりすることができます。個々のリクエストをログに書いたり書かなかったりできるように、条件によるログ収集も提供されています。
mod_logio(識別子:logio_module)
リクエストごとに受け取ったバイト数と送信したバイト数をログ出力する機能。 記録される数字はリクエストのヘッダとレスポンスの本体を反映した、実際にネットワークで受け取ったバイト値です。 入力では、SSL/TLSの前に、出力では、SSL/TLSの後に数えるので、 数字は暗号による変化も正しく反映したものになります。この機能をつかうには、「mod_log_configモジュール」が必要になります。
worker(識別子:mpm_worker_module)
このマルチプロセッシングモジュール(MPM)は、マルチスレッドとマルチプロセスのハイブリッド型サーバを実装しています。リクエストの応答にスレッドを使うと、プロセスベースのサーバよりも少ないシステム資源で、多くのリクエストに応答することができます。さらに、多くのスレッドを持った複数のプロセスを維持することで、プロセスベースのサーバの持つ安定性を保持しています。
mod_http(識別子:http_module)
常に使用可能なサーバのコア機能。
mod_so(識別子:so_module)
このモジュールを使用して動的共有オブジェクト(DSO)機構により、実行時にApacheにモジュールを読み込ませることが できます。
mod_alias(識別子:alias_module)
このモジュールのディレクティブはサーバにリクエストが到着したときにURLの操作や制御をすることを可能にします。「Aliasディレクティブ」と 「ScriptAliasディレクティブ」は URLとファイルシステムのパスをマップするために使用されます。これは「DocumentRootディレクティブ」の下にないドキュメントをウェブのドキュメントツリーの一部として 送られるようにします。「ScriptAliasディレクティブ」にはマップ先のディレクトリがCGIスクリプトのみであることを示すという追加の効果があります
mod_auth_basic(識別子:auth_basic_module)
HTTP基本認証でアクセス制限できるようになります。
mod_authn_file(識別子:authn_file_module)
本モジュールは「mod_auth_digest」や 「mod_auth_basic」といった認証フロントエンドに対して、 プレインテキストのパスワードファイル内からユーザを検索することで、ユーザ認証機能を提供します。
mod_authz_default(識別子:authz_default_module)
このモジュールは「mod_authz_userモジュール」や 「mod_authz_groupfileモジュール」といった承認モジュールを 設定しなかった場合のフォールバックモジュールとして設計されています。 どのような承認リクエストも単に拒否します。
mod_authz_groupfile(識別子:authz_groupfile_module)
このモジュールは認証されたユーザがグループのメンバーか否かによってウェブサイトの一部へのアクセスを許可するか拒否するかの承認機能を提供します。
mod_authz_host(識別子:authz_host_module)
サーバの特定の部分へのアクセスを制御するための機能。クライアントのホスト名、IPアドレスや環境変数として取得された、その他のリクエストに基づいてアクセス制御を行なうことができます。
mod_authz_user(識別子:authz_user_module)
このモジュールは、認証されたユーザにウェブサイトの一部へのアクセスを許可したり拒否したりするための承認機能を提供します。認証されたユーザが「Require userディレクティブ」に書かれていればアクセスを認めます。認証に成功したユーザすべてにアクセスを許可するには、代わりに 「require valid-userディレクティブ」を使うことができます。
mod_autoindex(識別子:autoindex_module)
「AddIconディレクティブ」、「AddIconByEncodingディレクティブ」、 「AddIconByTypeディレクティブ」を使うことで、様々なファイルタイプに対してアイコンをセットします。
mod_cgid(識別子:cgid_module)
Mimeタイプがapplication/x-httpd-cgiであるか、ハンドラcgi-scriptが指定されているファイルはCGIスクリプトとして扱われ、サーバにより実行され、その出力がクライアントに返されます。ファイルは、「AddTypeディレクティブ」に指定された拡張子を名前に含むか、「ScriptAliasディレクティブ」で指定されたディレクトリに存在することによりこのタイプになります。コンパイル時にマルチスレッドMPMが選ばれたときは「mod_cgiモジュール」の代わりに必ずこのモジュールが使用されます。
mod_dir(識別子:dir_module)
インデックスファイルには、ユーザが作成したファイルを用いるもので、通常index.htmlというファイル名を使います。このファイル名は、「DirectoryIndexディレクティブ」で指定することができます。なお「http://servername/foo/dirname」というURLへのリクエストがあった際に、「dirname」というディレクトリがあれば、「最後にスラッシュをつけた形」のURLへのリダイレクトを送出します。 ディレクトリへのアクセスはスラッシュで終わっている必要があり、「mod_dir」 は、「http://servername/foo/dirname/」へのリダイレクトを送出することになります。
mod_env(識別子:env_module)
このモジュールによりCGIスクリプトとSSIページに適用される環境変数を制御することができるようになります。 環境変数はhttpdプロセスを起動したシェルから渡されます。また、設定ファイルで環境変数を設定したり、削除したりすることができます。
mod_mime(識別子:mime_module)
このモジュールは拡張子を使っていろいろな「メタ情報」をファイルに 関連付けるために使用されます。この情報はドキュメントのファイル名とMIMEタイプ、言語、文字セット、エンコーディングとを関連付けます。この情報はブラウザに送られます。また、複数のファイルの中からユーザの好みのものが選ばれるように、コンテントネゴシエーションでも使われます。
mod_negotiation(識別子:negotiation_module)
コンテントネゴシエーション(コンテンツの選択機能)は、複数用意されているドキュメントから、クライアントの能力に一番合った ドキュメントを選択する機能です。この実装は二つあります。

  • タイプマップ (type-mapハンドラで扱われるファイル)。これは variantsを含んでいるファイルを明示的に指定します。
  • MultiViewsの探索 (MultiViews Option で有効になります)。 サーバが暗黙の内にファイル名のパターンマッチを行ない、その結果から選択します。
mod_setenvif(識別子:setenvif_module)
リクエストが指定された正規表現に合うかどうかによって環境変数を設定する機能。 これらの環境変数を使用して、サーバの他の部分がどのような動作をするかを決定することができます。
mod_status(識別子:status_module)
このモジュールによりサーバ管理者はサーバがどのくらいの性能で動作しているかを知ることができるようになります。現時点でのサーバの統計情報を読みやすい形式で表したHTMLページが表示されます。さらに、このページを自動的にリフレッシュさせることもできます (互換性のあるブラウザを使用している場合)。 別に、現時点でのサーバの状態を単純な機械読み取り可能なリストで表すページもこともできます。
スポンサーリンク







シェアする

  • このエントリーをはてなブックマークに追加

フォローする