scgi_cache_bypass
`scgi_cache_bypass` 指令控制何时根据指定条件绕过 SCGI 缓存。 — NGINX HTTP Core
scgi_cache_bypass
httpserverlocation
语法scgi_cache_bypass condition;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1+
说明
`scgi_cache_bypass` 指令用于定义在何种条件下应为特定请求绕过 SCGI 缓存。它接受一个或多个参数,这些参数可以使用变量(例如请求头或服务器变量)来确定是否应忽略缓存。当条件计算为非空值时,响应不会从缓存中提供,而是向 upstream 服务器发送新的请求。这样对于不应缓存的动态内容尤其有用,可确保用户获取最新数据。 该指令在 `http`、`server` 或 `location` 上下文中生效,允许根据应用需求对缓存行为进行细粒度控制。例如,如果你希望对包含特定 cookie 或请求头的请求绕过缓存,则可以使用此指令来指定该条件。在数据频繁变化或与用户相关的场景中,绕过缓存也可以提高性能,避免提供过期内容。 用户应谨慎使用该指令,因为过度绕过缓存可能导致 upstream 服务器负载增加并可能造成性能下降。这需要在缓存与实时访问需求之间进行谨慎的权衡。
配置示例
location /api {
scgi_pass backend;
scgi_cache my_cache;
scgi_cache_bypass $http_cache_bypass;
}⚠
在没有适当条件的情况下使用此指令可能导致意外的缓存行为。
⚠
如果绕过条件始终为真,就会完全抵消缓存的好处。
⚠
请务必在类似生产环境中测试这些条件,以避免性能问题。