直接启用 mod_status 即可查看 Apache 实时负载,需准确配置模块加载、/server-status 访问权限(如 Require local 或限定 IP)、全局启用 ExtendedStatus On,并通过 ?auto 获取机器可读指标(如 ReqPerSec、BusyWorkers、CPULoad 等)。
直接启用 mod_status 就能通过网页查看 apache 实时负载,包括当前请求数、空闲/忙碌进程、cpu 占比、每秒请求数(rps)、流量速率等关键指标。重点是配置要准、权限要设对、extendedstatus 要打开,否则很多有用数据看不到。
启用 mod_status 模块
不同系统启用方式略有差异:
-
CentOS/RHEL(httpd):模块通常已编译进核心,只需在配置中启用。检查
/etc/httpd/conf.modules.d/00-base.conf或主配置里是否有LoadModule status_module modules/mod_status.so,没有就手动加上。 -
Ubuntu/Debian(apache2):运行
sudo a2enmod status,自动启用并写入配置。 - 确认启用后,用
httpd -M | grep status(CentOS)或apache2ctl -M | grep status(Ubuntu)验证输出含status_module (shared)。
配置访问路径与权限
编辑对应配置文件(如 /etc/httpd/conf.d/status.conf 或 /etc/apache2/mods-enabled/status.conf),添加或修改如下内容:
<Location "/server-status">
SetHandler server-status
Require local
# 如需远程查看,替换为 Require ip 192.168.1.100 或 Require host example.com
</Location>注意:Require local 仅允许本机(localhost/127.0.0.1)访问;生产环境若需远程监控,务必限制为可信 IP 或加 HTTP 基础认证,避免暴露敏感信息。
开启详细状态(ExtendedStatus)
默认状态页只显示基础汇总,要看到每个子进程状态、CPU 使用明细、每个请求的字节数等,必须启用扩展模式:
Apache Superset 是一个广泛采用的开源 BI 平台,用于 SQL 探索、图表构建和仪表板交付。当代理需要查询仓库数据、组装仪表板或使用成熟的分析界面解释指标而不是临时笔记本代码时,此技能非常有用。
- 在主配置文件(
/etc/httpd/conf/httpd.conf或/etc/apache2/apache2.conf)中取消注释或添加:ExtendedStatus On - 该指令必须放在
<Location>块之外,全局生效才有效。
改完后重启服务:sudo systemctl restart httpd(CentOS)或 sudo systemctl restart apache2(Ubuntu)。
查看实时负载数据
服务重启后,即可通过以下方式访问:
-
浏览器访问:
http://服务器IP/server-status—— 人工查看,界面友好; -
自动刷新页面:
http://服务器IP/server-status?refresh=2(每2秒刷新一次); -
机器可读格式(适合脚本采集):
http://服务器IP/server-status?auto,返回纯文本键值对,例如:
Total Accesses: 12485
Total kBytes: 18243
CPULoad: .1234
ReqPerSec: 2.48
BytesPerSec: 8742
BytesPerReq: 3525
页面底部的 Scoreboard(记分板)还能看出各工作进程当前状态(R/W/K/_ 等符号),帮助判断是否存在慢请求、连接堆积或 DNS 延迟等问题。

















