fastcgi_cache_lock_age

指令 `fastcgi_cache_lock_age` 用于配置在请求重试之前等待 `FastCGI` 缓存锁可用的时间。 — NGINX HTTP Core

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

说明

NGINX HTTP 模块中的 `fastcgi_cache_lock_age` 指令定义了在缓存已被另一个请求锁定时,请求应等待 `FastCGI` 缓存锁可用的最长秒数。当对同一资源发起多个请求,并且由于另一个请求正在处理相同内容导致缓存被锁定时,该指令可以防止请求无限期挂起。相反,指定的等待时长(由此指令设定)允许请求在一定时间后重试。这有助于优化用户的响应时间,并通过避免过度等待来提高整体服务器性能。 `fastcgi_cache_lock_age` 的参数以秒为单位,并接受整数值。例如,如果该指令设置为 10,任何遇到缓存锁的请求将在放弃获取锁并发起新的请求之前最多等待 10 秒。设置过高会导致响应延迟,而设置过低可能导致不必要的缓存未命中。管理员应根据应用的预期缓存访问模式和对终端用户可接受的延迟来平衡 `fastcgi_cache_lock_age` 参数。

配置示例

location /app {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_cache my_cache;
    fastcgi_cache_lock on;
    fastcgi_cache_lock_age 10;
}

将值设置得过高可能导致响应时间延长,尤其在高流量且缓存经常被锁定时。

如果未启用 `fastcgi_cache_lock`,`fastcgi_cache_lock_age` 将不会生效。