コンテントネゴシエーションの設定がApacheのパフォーマンスに与える影響について確認しました。
下記資料を参考にしました。
Apache Performance Tuning
1)コンテントネゴシエーションの概要
・ブラウザで使用するメディアタイプ、言語、文字セット、エンコーディングなどのリソースをネゴシエーションして選択します。
・リソースをネゴシエーションする際、サーバーはvariant(各リソースの表現方法)についての情報を知っておく必要があり、variantにはタイプマップとMultiviewsの二つがあります。
・タイプマップは、”AddHandler type-map .var”などで指定したファイル(拡張子が.varのファイル)内にvariantが明示的に指定されています。
タイプマップファイルは記述するリソースと同じ名前を持っていて、利用可能な variant それぞれのエントリを持っている必要があります。
・MultiViewsは、”Option MultiViews”の設定で有効にでき、サーバが暗黙の内にファイル名のパターンマッチを行ない、 その結果を使って設定します。
2)性能面での注意点
・若干パフォーマンス上のロスがあるようなので、パフォーマンスに敏感な場合はコンテントネゴシエーションの使用を無効にする場合もあるようです。
一般的には、パフォーマンスのロスよりもネゴシエーションによるメリットの方が大きいようです。
・下記のように明示的にファイル名を使用頻度が高い順に指定するとスピードアップ出来ます。
例)
DirectoryIndex index
↓
DirectoryIndex index.cgi index.pl index.shtml index.html
・MultiViewsを使わずにタイプマップファイルを作って明示的に指定すると、MultiViewsのようにディレクトリ内を探索せず、一つのファイルの読込みだけで済むので性能上有利です。 関連記事の目次