【Apache】FollowSymLinks は有効にしたほうがパフォーマンスが上がる
問題
FollowSymLinks って有効にしておいたほうがいいんですか?
答え
こちらに書いてある
http://httpd.apache.org/docs/current/misc/perf-tuning.html#symlinks
FollowSymLinks and SymLinksIfOwnerMatch
Options FollowSymLinks を設定していない場合、または Options SymLinksIfOwnerMatch いる場合、Apacheはシンボリックリンクを調査するためにシステムコールを必要とする。(ディレクトリ、ファイルごとに1回発生する)
例えば、以下の設定の場合
DocumentRoot "/www/htdocs" <Directory "/"> Options SymLinksIfOwnerMatch </Directory>
/index.html にリクエストがあると、Apache は lstat(2) を /www, /www/htdocs, /www/htdocs/index.html に対して実行する。これらのlstatsの結果はキャッシュされない。そのためこの処理はリクエストの都度発生する。
もしシンボリックリンクのチェックを本当に必要としているならば、以下のようにするとよい:
DocumentRoot "/www/htdocs" <Directory "/"> Options FollowSymLinks </Directory> <Directory "/www/htdocs"> Options -FollowSymLinks +SymLinksIfOwnerMatch </Directory>
これで少なくともDocumentRootまではシンボリックリンクのチェックを回避できる。DocumentRoot外への Alias や RewriteRule があれば、同様の設定を追加すること。
シンボリックリンクのチェックをなくして、最大の性能を得るには、あらゆるディレクトリに FollowSymLinks を設定し、SymLinksIfOwnerMatch は設定しないこと。
コメント