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

时间:2017-04-26 09:46:53

标签: apache http server admin

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

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

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

  3. 至少在apache lvl中计算因错误而失败的请求

  4. 由于

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

计算已超时但未完成处理的请求(客户端已被饿死)

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

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

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

答案 2 :(得分:1)

据我所知,Apache不支持server status以外的此类功能。但这并未包含足以满足您要求的指标。

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

  

Nginx开源版支持以下指标,

     
      
  • 接受/接受
  •   
  • 处理
  •   
  • 下降
  •   
  • 活性
  •   
  • requests / total
  •   

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