Apache2和Nginx Web服务器状态页
- 2024-09-29 19:44:00
- 丁国栋
- 原创 55
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也支持状态页。
发表评论