Tips記事
» 2001年12月12日 00時00分 UPDATE

Apacheチューニング〜必要のないモジュールを削る〜

[木田佳克,ITmedia]

 「Apacheに組み込まれているモジュール一覧が知りたい」Tipsでは,組み込まれるモジュールについて触れた。さらにそれぞれのモジュールの役割りを知ることで,Apacheのチューニングをすることができる。ここでは,スリムなApacheにする方法の1つとして使用しない機能(モジュール)を省く方法を解説していこう。

 次の表に,代表的なモジュールを挙げてみた。Red Hat Linux,Turbolinuxなどのディストリビューションでは,ほかにも多くのモジュールが組み込まれていることと思うが,ここではソースからのコンパイルで組み込まれるものを中心に挙げてる。

表■代表的なモジュール一覧

モジュール名
内     容
Core Apacheの基本となる機能を実現する。例えば,DocumentRoot指定やAddModuleなどの動作そのものに関わる機能
mod_access クライアントのドメイン名やIPアドレスを判別し,アクセス制御を実現する
mod_alias Alias /image /pub/imageなどと指定し,ディレクトリのエイリアスを実現する
mod_asis ファイルの種類が定義されるのを容認し,HTTPヘッダを付加しないで送信する
mod_auth  テキスト形式のファイルを利用してユーザー認証を実現する
mod_auth_anon  FTP(anonymous)ログインができるようユーザー認証をサポートする
mod_auth_db  バークレイのDBフォーマットを容認し,ユーザー認証を実現する
mod_auth_dbm  DBM形式のフォーマットを容認し,ユーザー認証を実現する
mod_auth_msql  mSQLのデータベースフォーマットを容認し,ユーザー認証を実現する
mod_autoindex  DirectoryIndexで定義されたindex.htmlなどが存在しない場合,ディレクトリのリスト表示を行う
mod_dir  mod_autoindexと共に動作し,表示されたディレクトリにアイコン表示機能などを付加させる
mod_cern_meta HTTPでやり取りされるヘッダに,サイト全体で使用する物を追加できるようにする
mod_cgi CGIスクリプトの実行ができるようにする
mod_cookies クッキーのサポート。Apache1.2以降では,mod_usertrackに切り替えられている
mod_usertrack mod_cookiesからリプレースされたユーザー追跡モジュール
mod_digest アルゴリズムに128ビットのキーサイズを持つMD5を利用し,そのユーザー認証をサポート
mod_dld 

GNUのDLDライブラリ(libdld)を使用して実行時にリンクする。始動時間や実行可能なコードを指定できる。1.3.xでmod_soに置き換えられている

mod_env  CGIとSSIに,指定したシェルから環境変数を渡すことを許可する
mod_imap  イメージマップのハンドラ。.mapファイルにimagemap CGIプログラムの機能置き換えを実現する
mod_include  SSIの実行を許可する
mod_info  サーバの設定情報表示。/server-infoとしてHTTPにアクセスした際,参照ができるようになる
mod_log_agent  ユーザーエージェント(UserAgentヘッダ)のログ記録を行う
mod_log_config  ユーザー定義されたログの記録を行う
mod_log_referer  ドキュメントリファレンスのログ記録。ユーザーが訪れた直前のURLを記録する
mod_mime  拡張子で判別するドキュメントタイプ決定
mod_mime_magic 「magic numbers」利用したドキュメントタイプの決定
mod_negotiation  コンテンツ内容のネゴシエーション
mod_proxy  proxy(キャッシュ)のサポート
mod_rewrite  URI-to-filenameマッピング
mod_status サーバステータスの表示。/server-statusとしてHTTPにアクセスした際,参照ができるようになる
mod_userdir  ユーザーのホームディレクトリ使用を可能にする
mod_gzip  zip圧縮して送り出す。ホストのマシンパワーがある場合,トラフィック軽減が期待できる

 この中で,明らかに使用しないと思われる機能は,モジュールで組み込む必要がないだろう。次のように設定ファイルを編集すれば組み込まれなくなる。

Red HatのRPMパッケージであれば,
# vi /etc/httpd/conf/httpd.conf

ソースからのコンパイルであれば,
# vi /usr/local/apache/conf/httpd.conf

を編集する。

 注意しなければならないのは,「Apacheに組み込まれているモジュール一覧が知りたい」Tipsで紹介したように「LoadModule」と「AddModule」が組になっていることだ。例えばmod_autoindexを組み込まないようにしたい場合には,次の2行をコメントアウトすればよい。

〜中略〜
.............

#LoadModule autoindex_module /usr/libexec/apache/mod_autoindex.so
.............
〜中略〜

#AddModule mod_autoindex.c

 もちろん編集後には,次のようにhttpdを再起動することを忘れずに。

Red HatのRPMパッケージであれば,
# /etc/rc.d/init.d/httpd restart

ソースからのコンパイルであれば,
# /usr/local/apache/bin/apachectl restart

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ