Webサーバのチューニングには、いくつかの段階がある。今回は、httpd.confの修正によるApacheの最適化について説明する。(編集部)
今回は、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
モジュールを組み込むとApacheが肥大化し、動作速度にも影響します。そこで、不要なモジュールを組み込まないように、LoadModuleをコメントアウトします。基本的なHTTPサービスだけであれば、モジュールの組み込みは一切不要です。
# LoadModule foo_module modules/mod_foo.so
httpd.confファイルには、外部の設定ファイルを取り込むことができます。下の例では、/etc/httpd/conf.d/(SUSE LINUXは/etc/apache2/conf.d)ディレクトリにある拡張子が「conf」のファイルをすべて読み込みます。
Include conf.d/*.conf
上記の方法は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があれば、必要最小限の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の見通しも良くなります。上記の内容をベースに、必要な設定を追加するようにするとよいでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.