proxy_cache_bypass

指令 `proxy_cache_bypass` 控制特定请求是否在 NGINX 中绕过代理缓存。 — NGINX HTTP Core

proxy_cache_bypass
httpserverlocation
语法proxy_cache_bypass variable[, ...];
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1+

说明

`proxy_cache_bypass` 指令在 HTTP、server 或 location 上下文中使用,用于定义请求应在何种条件下绕过代理缓存。它接受一个或多个参数,这些参数可以是变量、nginx 内置变量或其他任何有效的标识符,在确定请求是否应跳过缓存时被求值为真。满足匹配条件时,NGINX 将直接从源服务器提供该请求,而不是返回缓存版本,从而允许针对特定请求返回动态响应,同时仍然为其他请求利用缓存。 当某些请求不应被缓存时(例如包含敏感的用户专属数据或频繁变化的动态内容的请求),此指令尤其有用。例如,当存在某些 cookies 或 request headers 时,可以将其设置为绕过缓存。这样可以对缓存行为进行细粒度控制并优化性能,确保只有适合的内容来自缓存,而其余数据仍可被缓存并高效提供。

配置示例

location / {
    proxy_pass http://backend;
    proxy_cache my_cache;
    proxy_cache_bypass $cookie_nocache;
}

确保指定的变量或表达式被正确评估,以避免意外的缓存行为。

过于宽泛的条件可能导致过多的缓存未命中,从而影响性能和服务器负载。