Apache HTTP 服务器版本 2.4
描述 | 提供有关服务器活动和性能的信息 |
---|---|
状态 | 基础 |
模块标识符 | status_module |
源文件 | mod_status.c |
Status 模块允许服务器管理员了解其服务器的性能。它会呈现一个 HTML 页面,以易于阅读的形式提供当前服务器统计信息。如果需要,此页面可以设置为自动刷新(如果浏览器兼容)。另一个页面提供当前服务器状态的简单机器可读列表。
提供的信息包括:
标记为 "(*)" 的行仅在 ExtendedStatus
设置为 On
时可用。在版本 2.3.6 中,加载 mod_status 会默认将 ExtendedStatus
设置为 On。
要仅为来自 example.com 域的浏览器启用状态报告,请将以下代码添加到您的 httpd.conf
配置文件中
<Location "/server-status"> SetHandler server-status Require host example.com </Location>
现在,您可以使用 Web 浏览器访问页面 http://your.server.name/server-status
来访问服务器统计信息。
如果您使用的是支持 "refresh" 的浏览器,则可以使状态页面自动更新。访问页面 http://your.server.name/server-status?refresh=N
以每 N 秒刷新一次页面。
可以通过访问页面 http://your.server.name/server-status?auto
来获取状态文件的机器可读版本。这在自动运行时很有用,请参阅 Perl 程序 log_server_status
,您可以在 Apache HTTP 服务器安装的 /support
目录中找到它。
mod_status
加载到服务器中,其处理程序功能将在所有配置文件中可用,包括每个目录文件(例如,.htaccess
)。这可能会对您的网站产生安全影响。
server-status
页面可以用作故障排除的起点,在这种情况下,您的服务器正在消耗所有可用资源(CPU 或内存),并且您希望确定哪些请求或客户端导致了问题。
首先,确保您已将 ExtendedStatus
设置为 on,以便您可以查看每个子进程或线程的完整请求和客户端信息。
现在,查看您的进程列表(使用 top
或类似的进程查看工具)以确定导致问题的特定进程。根据您要解决的问题,按 CPU 使用率或内存使用率对 top
的输出进行排序。
重新加载 server-status
页面,并查找这些进程 ID,您将能够看到哪个请求正在由该进程为哪个客户端提供服务。请求是短暂的,因此您可能需要尝试几次才能捕获到它,可以说。
此过程应该让您了解哪些客户端或哪些类型的请求是导致负载问题的主要原因。通常,您会发现某个特定 Web 应用程序行为异常,或者某个特定客户端正在攻击您的网站。