tracを入れると、重量級に重たくなったので、不要なmoduleを消してみたり、StartServerの数を増やしたりといろいろ試行錯誤をしてみたので、そのメモ。
参考:httpd.confによるWebサーバの最適化 (1/3):実用 Apache 2.0運用・管理術(3) - @IT
まずモジュール
今、起動時にLoadしているモジュール一覧。大量……
- actions_module
- メディアタイプやリクエストメソッドに応じて CGI スクリプトを実行する機能を提供
- alias_module
- ホストファイルシステム上のいろいろな違う場所を ドキュメントツリーにマップする機能と、 URL のリダイレクトを行なう機能を提供する
- authn_file_module
- テキストファイルを用いたユーザ認証
- authn_anon_module
- 認証が必要な領域への "anonymous" ユーザのアクセスを許可する
- authn_default_module
- 認証フォールバックモジュール
- authn_alias_module
- Provides the ability to create extended authentication providers based on actual providers.
- authz_host_module
- ホスト (名前もしくは IP アドレス) に基づいたグループ承認
- authz_groupfile_module
- プレーンテキストファイルを用いたグループ承認
- authz_user_module
- ユーザ承認
- authz_owner_module
- ファイルの所有者に基づいた承認
- authz_default_module
- 承認フォールバックモジュール
- authz_svn_module
- Subversion認証モジュール
- auth_basic_module
- 基本認証
- auth_digest_module
- MD5ダイジェスト認証
- cache_module
- URI をキーにしたコンテンツのキャッシュ
- dir_module
- 「最後のスラッシュ」のリダイレクトと、ディレクトリのインデックスファイルを扱う機能を提供する
- dav_module
- 分散オーサリングとバージョン管理 (WebDAV) 機能
- dav_svn_module
- バージョン管理Subverion機能を提供
- disk_cache_module
- ディスクを使用したストレージ 管理機構を実装
- dumpio_module
- 望むようにすべての I/O をエラーログにダンプする
- file_cache_module
- Caches a static list of files in memory
- include_module
- サーバがパースする html ドキュメント (Server Side Includes)
- filter_module
- Context-sensitive smart filter configuration module
- charset_lite_module
- Specify character set translation or recoding
- deflate_module
- クライアントへ送られる前にコンテンツを圧縮する
- log_config_module
- サーバへのリクエストのロギング
- logio_module
- リクエスト毎に入力バイト数と出力バイト数とをロギング
- env_module
- CGI スクリプト及び SSI ページに渡される環境変数を変更する機能を提供する
- mime_magic_module
- Determines the MIME type of a file by looking at a few bytes of its contents
- cern_meta_module
- CERN httpd metafile semantics
- expires_module
- ユーザの指定した基準に基づいた Expires と Cache-Control HTTP ヘッダの生成
- headers_module
- HTTP リクエストのヘッダと応答のヘッダのカスタマイズ
- usertrack_module
- Clickstream logging of user activity on a site
- unique_id_module
- それぞれのリクエストに対する一意な識別子の入った環境変数を提供する
- setenvif_module
- リクエストの特徴に基づいた環境変数の設定を可能にする
- version_module
- Apacheのバージョン依存を解消する。
- ssl_module
- Strong cryptography using the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols
- mime_module
- リクエストされたファイルの拡張子とファイルの振る舞い (ハンドラとフィルタ)、内容 (MIME タイプ、言語、文字セット、エンコーディング) とを関連付ける
- status_module
- サーバの活動状況と性能に関する情報を提供する
- autoindex_module
- Unix の ls コマンドや Win32 の dir シェルコマンドに似た ディレクトリインデックスを生成する
- asis_module
- 自分用の HTTP ヘッダの書かれているファイルを送信する
- info_module
- サーバの設定の包括的な概観を提供する
- cgi_module
- CGI スクリプトの実行
- vhost_alias_module
- Provides for dynamically configured mass virtual hosting
- negotiation_module
- コンテントネゴシエーション 機能を提供する
- imagemap_module
- Server-side imagemap processing
- speling_module
- ユーザが入力したであろう間違った URL を、大文字小文字の区別を無視することと一つ以下の綴り間違いを許容することで修正を試みる
- userdir_module
- ユーザ専用のディレクトリを提供
- rewrite_module
- Provides a rule-based rewriting engine to rewrite requested URLs on the fly
必要、不必要と切り分けて、その時に必要になったら、
勿論、どこにも使ってないモジュールはコメントアウトしておき、どこにでも使うようなモジュール(actions_module, authz_user_moduleとか)はhttpd.confでロードしておく。てか、staticにしとけよ…
preforkとworker
MPMは、mod_python+Djangoの都合でworkerで使えないので、必然的にprefork。
ここのステータスはこんな感じ。一人で使ってるからのと、たまに衝動的にDjangoで開発をすることがあるから、MaxRequestsPerChildは少なめで。*1
<IfModule prefork.c> StartServers 10 MinSpareServers 10 MaxSpareServers 40 MaxClients 30 MaxRequestsPerChild 1000 </IfModule>
*1:MaxRequestsPerChildが5000とか6000ってそんなもんだったっけなぁ…