proxy_cache_revalidate
`proxy_cache_revalidate` 指令控制 NGINX 在向客户端提供内容之前是否与源服务器对缓存条目进行重新验证。 — NGINX HTTP Core
proxy_cache_revalidate
httpserverlocation
语法proxy_cache_revalidate on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag
说明
`proxy_cache_revalidate` 启用时,当缓存已过期,会使 NGINX 向上游服务器发送条件请求以重新验证缓存条目。它通过在请求中发送 If-Modified-Since 或 If-None-Match 头来执行此验证,这会告知源服务器检查自上次获取以来缓存的资源是否已被修改。 此行为特别有助于在提供缓存内容时确保客户端收到最新版本的资源。如果上游服务器响应资源未改变(HTTP 304 Not Modified),NGINX 会向客户端提供过期但仍可用的缓存版本。若资源已改变,NGINX 则会获取新版本并相应更新其缓存。 将此指令与合适的缓存策略结合使用很重要,以避免向上游服务器发出不必要的请求,尤其是在缓存被频繁访问且资源不太可能被修改的情况下。但如果实时性对您的应用至关重要,启用此指令有助于维持内容交付的最新性。
配置示例
location /example {
proxy_pass http://example_upstream;
proxy_cache my_cache;
proxy_cache_revalidate on;
}⚠
在没有有效缓存策略的情况下使用此指令,可能会由于不断的重新验证请求导致上游服务器负载过高。
⚠
请确保上游服务器支持条件请求,否则客户端可能无法从此指令中受益。
⚠
请记住,启用此指令可能会在缓存过期后的首次请求中增加响应时间。