我们有一个configuration好的Apache服务器,在conf / httpd.conf中我们有(文件的其余部分为简洁起见已被删除):
LoadModule status_module modules/mod_status.so ExtendedStatus On
而在conf.d / myserver.conf中我们有(再次删除其他位):
Listen 8162 <VirtualHost *:8162> <Location /server-status> SetHandler server-status Order allow,deny Allow from localhost Deny from all </Location> </VirtualHost>
请注意,在httpd.conf中,所有的Listen指令都被注释掉,这意味着Apache只在端口8162上进行侦听。 <Location /server-status>也在httpd.conf中被注释掉。
当我们尝试时我们得到了一个403 :
wget http://localhost:8162/server-status
服务器状态可以在非标准端口上运行吗? 如果可以的话,我们还应该寻找什么来使服务器状态可以从本地主机访问?
这对我来说,当在端口80上使用清漆,从端口8000服务apache与一个额外的Apache监听端口8001定义
/etc/apache2/mods-enabled/status.conf
。
<IfModule mod_status.c> # # Allow server status reports generated by mod_status, # with the URL of http://servername/server-status # Uncomment and change the ".example.com" to allow # access from other hosts. # Listen 8001 ExtendedStatus On <VirtualHost *:8001> <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from localhost ip6-localhost # Allow from .example.com </Location> </VirtualHost> </IfModule>
你可以用l testtesting它
lynx -dump http://127.0.0.1:8001/server-status
l output输出应该看起来像这样:〜
Apache Server Status for 127.0.0.1 Server Version: Apache/2.2.14 (Ubuntu) mod_ssl/2.2.14 OpenSSL/0.9.8k Server Built: Nov 3 2011 03:29:23 __________________________________________________________________ Current Time: Saturday, 03-Dec-2011 12:36:05 CET Restart Time: Friday, 02-Dec-2011 00:59:04 CET Parent Server Generation: 22 Server uptime: 1 day 11 hours 37 minutes Total accesses: 44550 - Total Traffic: 368.1 MB CPU Usage: u27.53 s3.48 cu0 cs0 - .0242% CPU load .347 requests/sec - 3010 B/second - 8.5 kB/request 2 requests currently being processed, 4 idle workers W___._W......................................................... --cut--