scgi_cache_lock_timeout

设置在 NGINX SCGI 缓存中等待缓存响应锁的最长时间。 — NGINX HTTP Core

scgi_cache_lock_timeout
httpserverlocation
语法scgi_cache_lock_timeout time;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1

说明

`scgi_cache_lock_timeout` 指令在 NGINX HTTP Core module 中指定在尝试获取缓存的 SCGI 响应锁时的最大等待时长。这在多个针对同一资源的请求同时处理时特别有用。当发出请求且对应的缓存响应不可用时,会获取一个锁以防止其他请求同时为相同资源生成 SCGI 请求。这样可确保只有一个请求被发送到 upstream,而其他请求则等待。 如果达到指定的超时时间仍未获取到锁,待处理的请求将返回错误或过期的缓存版本(如果启用了此类行为)。因此,该指令有助于控制在发生缓存未命中时请求应被挂起等待的时间,并防止由于并发请求而压垮 upstream 服务器。 `scgi_cache_lock_timeout` 的值以秒为单位设置,可精确控制服务器在处理 SCGI 请求时与锁定相关的行为。定义这样的超时可以在高负载下显著提升性能并改善终端用户的响应时间。

配置示例

scgi_cache_lock_timeout 5s;

注意不要将超时时间设置得过高;在缓存未命中时,这可能导致请求的等待时间增加。

如果设置得过低,可能导致不必要的缓存未命中,因为请求在获取锁之前就会出错。