連載
» 2005年09月16日 00時00分 UPDATE

実用 Apache 2.0運用・管理術(3):httpd.confによるWebサーバの最適化 (1/3)

Webサーバのチューニングには、いくつかの段階がある。今回は、httpd.confの修正によるApacheの最適化について説明する。(編集部)

[鶴長鎮一,@IT]

 今回は、httpd.confでできるチューニングについて解説します。httpd.confファイルの場所はディストリビューションやインストール方法によって異なり、主に

/etc/httpd/conf/ :Fedora CoreなどRed Hat系
/etc/apache2/ :SUSE系
/usr/local/apache2/conf/:ソースからインストールした場合

などに配置されています。

 なお、httpd.confの更新内容を有効にするには、httpd.conf編集後にApacheを再起動する必要があります。Apacheの再起動は、第1回の「起動/終了、サービスの登録」を参考にしてください。

不要な機能、設定の削除

不要なモジュールの削除

 Apacheは、モジュールによって機能を追加することができます。Apacheインストール時に組み込まれているモジュールは、以下のようにして確認できます。

$ /usr/sbin/httpd -l
Compiled in modules:
  core.c
  prefork.c
  http_core.c
  mod_so.c

 これ以外にも、Apache 2.0ではDSO(Dynamic Shared Object)を利用することで、実行時にモジュールを組み込むことができます。DSOによるモジュール組み込みは、httpd.confファイルでLoadModuleディレクティブを使ってモジュールを指定します。

LoadModule php5_module modules/libphp5.so
PHP 5の組み込み例

 モジュールを組み込むとApacheが肥大化し、動作速度にも影響します。そこで、不要なモジュールを組み込まないように、LoadModuleをコメントアウトします。基本的なHTTPサービスだけであれば、モジュールの組み込みは一切不要です。

# LoadModule foo_module modules/mod_foo.so
行頭に「#」を付けてコメントアウト

Fedora Core/SUSE/Turboのhttpd.conf

 httpd.confファイルには、外部の設定ファイルを取り込むことができます。下の例では、/etc/httpd/conf.d/(SUSE LINUXは/etc/apache2/conf.d)ディレクトリにある拡張子が「conf」のファイルをすべて読み込みます。

Include conf.d/*.conf
注:ServerRootディレクティブで指定されたディレクトリからの相対パスです。

 上記の方法はFedora CoreやSUSE LINUX、Turbolinuxなど多くのディストリビューションでは常とう手段となっています。PHPやPerlなど追加機能ごとに設定ファイルを切り出すことで、httpd.confファイルが肥大化して見通しが悪くなることを防いでいるのです。例えば、Fedora Core4では以下のファイルが組み込まれます。

# ls /etc/httpd/conf.d/*conf
auth_kerb.conf   mailman.conf  python.conf        welcome.conf
auth_mysql.conf  manual.conf   squirrelmail.conf  wordtrans.conf
auth_pgsql.conf  mrtg.conf     ssl.conf
authz_ldap.conf  perl.conf     subversion.conf
htdig.conf       php.conf      webalizer.conf

 これらのファイルの中にはモジュールを組み込んでいるものもあり、パフォーマンスに影響するものもあります。httpd.confを見直す際は、これらの追加confファイルも忘れないように注意しましょう。また、モジュールと同じく、Apacheの基本動作に上記のファイルはほとんど必要ありません。「Include conf.d/*.conf」をコメントアウトして読み込まないようにするか、ワイルドカード指定を止めて必要なconfファイルだけを直接指定するようにしましょう。

#Include conf.d/*.conf
Include conf.d/php.conf

httpd.confの減量

 httpd.confファイルに余分な記述があると、動作が緩慢になる場合もあります。以下の内容のhttpd.confがあれば、必要最小限のHTTPサービスは提供可能です。

Listen 80
ServerRoot "/etc/httpd"
DocumentRoot "/var/www/html/"
 
User  nobody
Group nobody
 
<IfModule prefork.c>
MaxClients       150
StartServers     5
MinSpareServers  5
MaxSpareServers 10
</IfModule>
 
<IfModule worker.c>
StartServers         2
MaxClients         150
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     25
MaxRequestsPerChild  0
</IfModule>
 
MaxRequestsPerChild 0
 
ErrorLog logs/error_log
 
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
httpd.conf

 httpd.confをダイエットすることで、httpd.confの見通しも良くなります。上記の内容をベースに、必要な設定を追加するようにするとよいでしょう。

       1|2|3 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。