如何检查客户端是否在Apache服务器中饿死?

问题描述 投票:6回答:3

您将如何监控服务器性能:

  1. 在没有处理的情况下计算已超时的请求(客户端被饿死)
  2. 计算在进行中已超时的请求
  3. 至少在apache lvl中计算由于错误而失败的请求

谢谢

apache http server admin
3个回答
1
投票

在没有处理的情况下计算已超时的请求(客户端被饿死)

这取决于您正在运行的平台以及Apache服务器的用途。如果将apache服务器用作某个网站的后端,则可以为客户端(网站用户)发出的每个请求添加时间戳,或者让客户端跟踪其执行的请求及其关联的时间戳。将此数据发送到服务器,让服务器将此数据与其自己的日志进行比较。

因此,我建议跟踪所有收到和发送的请求的客户端和服务器端,以及它们的附加状态(成功或失败,时间戳)。

对于更具体的信息,我认为必须有更多关于实际实现的背景信息。


1
投票

据我所知,除了server status之外,Apache不支持这种功能。但这并不包括足以满足您要求的指标。

nginx提供了更多指标,几乎包括您的需求。

Nginx开源版支持以下指标,

  • 接受/接受
  • 处理
  • 下降
  • 活性
  • 请求/总计

请参考this article。如果您正在尝试托管一个php Web应用程序,那么在这种情况下您可以转移到nginx。


1
投票

在这种情况下我不是专家,但这是我对此的看法,

请求超时在日志中生成408错误,这是可数的,并且apache提供变量%D来测量处理时间。

在没有处理的情况下计算已超时的请求(客户端被饿死)

如果没有处理时间或最小值,那么您可以假设根本不处理请求。

计算在进行中已超时的请求

与之前的理论相反,您将获得一些时间进行处理。

至少在apache lvl中计算由于错误而失败的请求

你肯定会因为apache遇到的任何原因而得到错误日志。

在这种情况下,保持活力的作用是另一回事。

apache 2和2.4中的日志记录方法不同,请记住这一点,但常见的日志记录格式会导致结果。

编辑:

如果您正在寻找工具来为您提供一些见解,请尝试使用以下内容,而apache httpd服务器确实提供了nginx和其他服务器可以提供的所有必要的见解。

https://logz.io/

http://goaccess.prosoftcorp.com/

http://awstats.sourceforge.net/

Refrences:

http://httpd.apache.org/docs/current/mod/mod_log_config.html https://httpd.apache.org/docs/2.4/mod/mod_reqtimeout.html https://httpd.apache.org/docs/2.4/logs.html

© www.soinside.com 2019 - 2024. All rights reserved.