Apache で運用しているWebサーバの稼働状況を見てみようということで、何年かぶりに server-status を設定することにしました。
最近の httpd は設定ファイルを /etc/httpd/conf.d に書くのが流行っているようなので、このディレクトリに server-status.conf というファイルを作成し、下記のようにしました。
<Location /server-status>
SetHandler server-status
Require ip 192.168.0
</Location>
続いて apachectl configtest と apachectl restart をかませば server-status が見えるようになるはず。
早速アクセスしてみると「404 NotFound」になってしまいました。アクセス制限がうまくいっていないと403になるはずなので、アクセス制限は通過しているっぽい。
ググってみると、バーチャルドメインが設定されている場合は <Virtual> タグの中で設定する必要があるとのことで、なるほど!と思ってバーチャルドメインの中に設定したけれど、それでも 404 NotFound になってしまいました。
あれこれ彷徨ってみると、「リダイレクト設定されてない?」という情報が。
どうやら、WordPress のために設定されているリダイレクトが影響しているので、server-status についてはリダイレクトを除外する設定が必要らしい。
ということで、.htaccess を修正。
RewriteEngine On RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/server-status ←これを追加 RewriteRule . /index.php [L]
これで、無事に server-status を見ることができるようになりました。
ただし、.htaccess の上記の部分は WordPress によって自動的に設定される箇所なので、WordPress によってさらに書き換えられてしまう可能性があります。今回は調査用ということで、短時間で解除しましたので問題にはなりませんでしたが、恒久的に設定を残すためにはなにか工夫がいるかも知れません。
0件のコメント