Apache 2.2でWebサイトをパフォーマンスアップ!
− 最新Apacheの機能と設定方法教えます −
鶴長 鎮一(book@tsurunaga.jp)
2006/3/14
強化されたドキュメントキャッシュ機能を使う
ドキュメントキャッシュ機能を導入すると、Apacheの応答性を向上させることができます。
従来のApache 2.0でも、mod_file_cacheモジュールを使用することで通常コンテンツのレスポンスを向上させることができました。ただし、mod_file_cacheの仕組みはApacheの起動時にファイルをメモリに読み込ませるというもので、コンテンツに変更があった場合は再起動が必要になるなど、動的なキャッシングには対応していませんでした。
Apache 2.2では、RFC 2616に準拠したHTTPコンテンツキャッシュが可能になりました。Cache-Controlヘッダを使ったキャッシュ制御にも対応しており、静的コンテンツだけでなく動的コンテンツのキャッシングも可能です。Apache側の設定により、URLごとにキャッシュ機能の有効/無効を制御することもできます。
<html> |
Cache-Controlヘッダによるキャッシュ機能の制御例 |
■ドキュメントキャッシュ機能の導入
キャッシュ機能はデフォルトでは無効になっています。有効にするには、各キャッシュモジュールを組み込む必要があります。ここではDSOを用いず、静的に組み込む方法を紹介します。
まずApache 2.2のソースアーカイブをミラーサイト(http://httpd.apache.org/download.cgi)からダウンロードし、展開後configureを実行します。
# tar xvfz httpd-2.2.0.tar.gz |
configure実行の際に、「--enable-cache」でドキュメントキャッシュ機能を有効にし、「--enable-disk-cache」でディスクキャッシュ、「--enable-mem-cache」でメモリキャッシュにそれぞれ対応させます。その後make、make installを実行し、/usr/local/apache2にファイルをインストールします。
# make |
インストール終了後、モジュールが組み込まれているか否かを「httpd -M」で確認します。今回はDSOを利用していないため、「httpd -l」でも確認できます。
# /usr/local/apache2/bin/httpd -M |
または、
# /usr/local/apache2/bin/httpd -l |
■ドキュメントキャッシュ機能の設定
次にhttpd.confファイルを編集し、mod_cache、mod_disk_cache、mod_mem_cacheモジュールの設定を行います。httpd.confファイルはデフォルトでは/usr/local/apache2/confディレクトリにあります。
<IfModule mod_cache.c> |
「CacheEnable」に続けて、ディスクキャッシュを利用する場合は「disk」、メモリキャッシュを利用する場合は「mem」を指定し、キャッシング対象とするURLを指定します。上の例では同じURL「/」とそのサブディレクトリに対し、ディスクキャッシュとメモリキャッシュの両方を設定していますが、実際はどちらか1つを利用するか、別のURLに対して設定するようにします。
メモリキャッシュは高いパフォーマンスを得ることができますが、1byte当たりのコストがディスクに比べ依然高価なため、大容量のキャッシュストレージを必要とする場合はディスクキャッシュを用います。
特定URLのキャッシュを無効化する場合は、「CacheDisable /foo/bar」のような指定を併せて行います。
httpd.confファイル修正後、キャッシュデータを格納するディレクトリを作成し、オーナーをApacheのユーザー/グループ名に変更します。
# mkdir /usr/local/apache2/cache |
注:Apache 2.2のデフォルトユーザー/グループはdaemonです。必要に応じて適宜変更します。 |
# /usr/local/apache2/bin/apachectl start |
最後にApacheを起動または再起動し、動作を確認します。ディスクキャッシュが機能していれば、キャッシュされたドキュメントが/usr/local/apache2/cache下に保管されていることが確認できます。
2/3
|
|
||||||
|
Linux Square全記事インデックス |
Linux Squareフォーラム サーバ構築・運用関連記事 |
連載:Heartbeatでかんたんクラスタリング(連載中) オープンソースソフトウェアの「Heartbeat」を使ってHAクラスタを実現し、サービスを「落とさない」仕組みを実現します |
|
特集:Apache 2.2でWebサイトをパフォーマンスアップ! 最新安定版Apache 2.2は、何が変わったのか? 最新のApacheを新機能の使い方とともに解説する |
|
連載:実用 Apache 2.0運用・管理術(全8回) 本連載では、Apache 2.0の運用や管理方法を解説する。まず必須設定と基本的なセキュリティ対策を行い今後の運用に備える |
|
連載:実用
BIND 9で作るDNSサーバ(全15回) 本連載では、BIND 9の構築/運用方法を解説していく。実際に役立つことを目的に、セキュリティや大規模運用などのテーマを取り上げていく |
|
連載:実用qmailサーバ運用・管理術(全14回) 本連載を通して、qmailによるメールサーバの高度な構築・運用・管理術を紹介。SPAM対策やML管理からサーバでのウイルスチェックなどまで |
|
特集:Samba
3.0の全貌 改訂版 Samba 3.0リリースから8カ月。ここであらためて、Samba 3.0系列の新機能、インストール方法、国際化の現状を解説する |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|