sysguard_rt
用于监控和控制请求处理时间的 `sysguard_rt` 指令,会在响应时间超过阈值时触发相应操作。
NGINX sysguard module
·
httpserverlocation
语法sysguard_rt rt=number period=time [method=string] [action=URI];
默认值none
上下文http, server, location
参数1-4
说明
NGINX sysguard 模块中的 sysguard_rt 指令旨在通过监控请求的响应时间来帮助管理 Web 应用的性能。通过指定一个或多个参数,可以设置阈值;当阈值被突破时,会触发预定义的操作。该指令最多接受四个参数:rt(响应时间阈值)、period(用于计算平均响应时间的时间周期)、method(用于计算平均值的统计方法)以及可选的 action,用于指定在超过阈值时的处理方式。
参数 rt 指定允许的最大响应时间,period 定义这些测量的频率(例如每 5 秒)。参数 method 允许选择用于计算平均响应时间的算法,例如 AMM(平均移动方法)和 WMA(加权移动平均)。action 通常可以指向处理超载流量的位置,例如重定向到错误页面或限制后续请求。当平均响应时间超过设定的阈值时,将触发指定的操作,从而使管理员能够采取防止过载的措施。
该指令通过基于服务器负载指标有效地调节请求处理,为 Web 服务器性能提供了重要的动态控制,尤其适用于高流量环境。
配置示例
server {
sysguard on;
sysguard_mode or;
sysguard_rt rt=2.0 period=10s method=WMA:10 action=/slowrequest;
location /slowrequest {
return 503;
}
}⚠
确保指定的 period 适合您的应用负载;过短可能导致频繁的状态变更。
⚠
确保 action URI 已正确配置以处理负载控制,因为配置错误可能导致用户收到意外响应。
⚠
使用过于激进的阈值可能导致大量 503 响应,影响用户体验。请谨慎校准 rt 限制。