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

FollowSymLinks、SymLinksIfOwnerMatchの設定がApacheのパフォーマンスに与える影響について確認しました。

下記資料を参考にしました。
Apache Performance Tuning
 

1)FollowSymLinks、SymLinksIfOwnerMatchの概要


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

2)SymLinksIfOwnerMatchとパフォーマンス


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

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

・上記設定の場合

3)SymLinksIfOwnerMatchを使う場合の推奨設定


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

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

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

 

4)AliasやRewriteRuleを使用する場合の注意点


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

関連記事の目次

コメントを残す

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