Apache2和Nginx Web服务器状态页

2024-09-29 19:44:00
丁国栋
原创 55
摘要:Web服务器通常可以显示Web服务器自身的运行状态,我们通过状态页显示的信息可以判断服务器的健康情况,例如查看服务器负载、请求数量、进程数量和每一个进程正在处理的请求URI。一些监控软件也可以读取这个页面把数据收集起来做进一步处理。

Web服务器通常可以显示Web服务器自身的运行状态,我们通过状态页显示的信息可以判断服务器的健康情况,例如查看服务器负载、请求数量、进程数量和每一个进程正在处理的请求URI。一些监控软件也可以读取这个页面把数据收集起来做进一步处理。


一个典型的apache2的状态页如下

开启Apache2的状态页,确保status_module模块已经加载(默认启用),如果没有加载则需要手动加载。

apachectl -M|grep status
如果没有加载,则手动加载模块
a2enmod status
编辑配置文件,设置适当的访问权限
vim /etc/apache2/mods-enabled/status.conf
配置文件内容大致如下
<Location /server-status>
	SetHandler server-status
	Require local
	Require ip 192.0.2.0/24
</Location>
ExtendedStatus On


有的Apache2虚拟主机配置了 .htaccess 来做单一入口,需要做特殊处理一下,例如下面配置所示


# cat www/.htaccess
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_URI} !^/server-status$
  RewriteRule (.*)$ index.php/$1 [L]
</IfModule>
上面配置的意思是当访问的目录不存在、文件不存在、不是 /server-status 时才应用重写规则,把所有请求交由 index.php 处理。




Nginx 的 status 状态页配置就更清晰明了。

下面是一个Nginx的状态页显示的数据:


Active connections: 291
server accepts handled requests
 16630948 16630948 31070465
Reading: 6 Writing: 179 Waiting: 106


Nginx也需要配合状态模块使用,编译参数需要包含--with-http_stub_status_module

配置Nginx支持显示状态


location = /basic_status {
    stub_status;
}


此外其他服务也有类似的状态页,且状态页也是一个不错的功能点。例如php-fpm也支持状态页。

发表评论
博客分类