FollowSymLinks、SymLinksIfOwnerMatchの設定とApacheのパフォーマンス

FollowSymLinks、SymLinksIfOwnerMatchの設定がApacheのパフォーマンスに与える影響について確認しました。
 
下記資料を参考にしました。
Apache Performance Tuning

※目次をクリックすると目次の下部にコンテンツが表示されます。

FollowSymLinks、SymLinksIfOwnerMatchの概要
①FollowSymLinks
 
この設定を有効するとWebサーバがシンボリックリンクをたどれるようになります。
 
②SymLinksIfOwnerMatch
 
シンボリック先のファイルまたはディレクトリがシンボリックリンクの所有ユーザIDと同じ場合にのみシンボリックリンクをたどれるようにします。

SymLinksIfOwnerMatchとパフォーマンス
下記設定例の場合、/index.htmlに対するリクエストがあった場合、Apacheは”/www”、”/www/htdocs”のディレクトリ、”/www/htdocs/index.html”のファイルに対してlstat(2)を実行し、所有者を調べる必要があります。そしてこのlstatの実行結果はキャッシュされません。
 すべてのリクエストに対し、lstatによって所有者を調べる必要がありパフォーマンスに影響を与えます。
(設定例)

DocumentRoot /www/htdocs
<Directory />
  Options SymLinksIfOwnerMatch
</Directory>

SymLinksIfOwnerMatchを使う場合の推奨設定
セキュリティ上のチェックなどによってSymLinksIfOwnerMatchを使う必要がある場合は、下記設定例のようにSymLinksIfOwnerMatchを設定するディレクトリを限定するようにします。

DocumentRoot /www/htdocs
<Directory />
  Options FollowSymLinks
</Directory>

<Directory /www/htdocs>
  Options -FollowSymLinks +SymLinksIfOwnerMatch
</Directory>

AliasやRewriteRuleを使用する場合の注意点
AliasやRewriteRuleの設定によって、ドキュメントルート以外の場所にコンテンツを配置できます。
 
その配置場所のDirecoryディレクティブの設定に関してもパフォーマンスを考慮する必要があるならSymLinksIfOwnerMatchの使用は3)と同様に注意して設定します。

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください