Pocket

VirtualHost設定 apache2サーバでのserver-status参照設定

  • add this entry to hatena bookmark

VirtualHost を設定している apache2 サーバで ローカルからのみ server-status を確認できるようにする方法を記載しています。

lynxインストール

テキストブラウザ「lynx」がインストールされていない場合、yumでインストールします。lynx は後ほど利用するapachectl コマンドで必要になります。

# yum install lynx
# rpm -qa | grep lynx
lynx-2.8.6-27.el6.x86_64
#

lynxがインストールされると、テキストブラウザを利用できるようになります。
例えば、「$ lynx http://www.checksite.jp/」とすると、該当サイトをテキストで参照できます。

 

httpd.conf 設定

次は、httpd.conf の設定になります。まず、mod_statusモジュールがロードされている事を確認します。もしコメントアウトされていれば、コメントアウトを外します。

LoadModule status_module modules/mod_status.so

httpd.conf を変更した場合は、apache2 を再起動します。再起動前に、httpd.conf 設定内容が正しい記載になっているかどうかをチェックします。

# /usr/local/apache2/bin/apachectl configtest
Syntax OK
#

apache2再起動後、この時点ではまだ httpd.conf に「server-status」の設定をしていないので、「apachectl status」コマンド結果は「Not Found」になるかと思います。

# /usr/local/apache2/bin/apachectl status
                                   Not Found

   The requested URL /server-status was not found on this server.
#

次に、httpd.conf で、server-status の設定を行います。

今回の設定環境では既存設定で VirtualHost設定を行っている apache2 になります。server-status 確認用に新しくVirtualHost設定を行います。
以下はサンプル設定です。

<VirtualHost *:80>
  ServerName localhost
  DocumentRoot "/usr/local/apache2/localhost"

  <Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from localhost
  </Location>
</VirtualHost>

ポイントは、Location設定の箇所になります。SetHandler で「server-status」を指定し、「Allow from localhost」でローカルからのみ、server-statusを確認できるようにします。

httpd.conf を変更したので、再度apache2を再起動します。

その後、「apachectl status」コマンドを発行すると、server-status 情報が確認できるようになります。

# /usr/local/apache2/bin/apachectl status
                  Apache Server Status for localhost
(中略)
   Server uptime: 9 minutes 24 seconds
   Total accesses: 48 - Total Traffic: 466 kB
   CPU Usage: u6.54 s.61 cu0 cs0 - 1.27% CPU load
   .0851 requests/sec - 846 B/second - 9.7 kB/request
   1 requests currently being processed, 49 idle workers

    PID    Connections    Threads      Async connections
         total accepting busy idle writing keep-alive closing
   21957 0     yes       0    25   0       0          0
   21958 0     yes       1    24   0       0          0
   Sum   0               1    49   0       0          0
(省略)

server-status情報はサーバ固有の情報を含みますので、この情報にアクセス可能な端末は絞った方が良いです。今回は「Allow from localhost」で絞っています。

 

備考

万一、localhost が /etc/hosts に定義されていない場合、「apachectl status」コマンド発行時に以下のような Forbidden 表示がされます。

# /usr/local/apache2/bin/apachectl status
                                   Forbidden

   You don't have permission to access /server-status on this server.
#

apache2 のaccess_log には、応答コード403 で記録されていると思います。

その際は、/etc/hosts に localhostを追加するか、「Allow from 127.0.0.1」などを設定してみてください。

Pocket

コメントを残す

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


*

チェックサイト RSS Feed読者登録はいかがでしょうか?RSS配信中です。