sysguard_mode
`sysguard_mode` 指令决定了多个 sysguard 规则用于评估系统负载状态时的逻辑组合方式。
NGINX sysguard module
·
httpserverlocation
语法sysguard_mode or | and;
默认值or
上下文http, server, location
参数flag
说明
sysguard_mode 指令用于 NGINX 的 sysguard 模块中,用以指定不同条件检查(例如负载、内存使用和响应时间)如何组合以判断是否需要采取行动。该指令接受两个值:or 和 and。当设置为 or 时,只要满足任意一项指定条件就会触发动作,这使得响应较轻微的系统压力更为容易。相反,当设置为 and 时,必须满足所有指定条件后才会采取相应动作,从而在更准确评估关键系统状态时实现更严格的控制。
该指令可在多个上下文中使用,包括 http、server 和 location,根据所需的监控与响应粒度提供灵活的配置。评估在请求处理时进行,并根据当前系统指标与定义的阈值对照,采取适当动作,例如返回一个 HTTP 错误代码或限制服务。该行为高度可定制,可根据 NGINX 所服务的每个应用的具体工作负载需求进行调整。
配置示例
http {
server {
sysguard on;
sysguard_mode and;
sysguard_load load=5.0 action=/limits;
sysguard_mem swapratio=15% action=/limits;
location /limits {
return 503;
}
}
}⚠
在使用此指令时,确保至少定义一个 sysguard 条件;否则该指令将不会生效。
⚠
使用 and 模式可能会导致触发的操作减少,如果未满足所有条件,可能会延迟对关键系统状态变化的响应。