proxy_cache_valid
指令 `proxy_cache_valid` 定义了基于响应状态码缓存响应被视为有效的时长。 — NGINX HTTP Core
proxy_cache_valid
httpserverlocation
语法proxy_cache_valid status code time period;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1+
说明
指令 `proxy_cache_valid` 通过指定对某些 HTTP 状态码应保留缓存响应的时长来配置 NGINX 中的缓存机制。该指令在你希望根据被代理服务器返回的不同类型响应来控制缓存时长时尤其有用。例如,你可能希望将成功响应(HTTP 200)缓存的时间设得比错误响应(例如 HTTP 500)更长。默认情况下,除非在此指令中提供了特定的生存时间(TTL),缓存的响应将依据 `proxy_cache_use_stale` 和 `proxy_cache_revalidate` 设置。 该指令接受一个或多个参数对:HTTP 状态码和时间周期(可用秒、分钟、小时或天来指定)。例如,可以写 `proxy_cache_valid 200 1h;` 将 HTTP 200 响应缓存一小时。通过多行定义,你可以为不同的状态码指定不同的时间周期,从而对缓存行为进行细粒度调整以适应应用需求。需要注意的是,缓存行为还会受到如 `proxy_cache` 等其他指令的影响,`proxy_cache` 必须启用才能使 `proxy_cache_valid` 生效。
配置示例
location /api {
proxy_pass http://backend;
proxy_cache my_cache;
proxy_cache_valid 200 1h;
proxy_cache_valid 404 10m;
}⚠
如果未启用 `proxy_cache`,此指令将不起作用。
⚠
如果在请求响应时没有正在提供的缓存,即使定义了此指令,响应也不会被缓存。
⚠
注意状态码;错误指定的状态码可能导致意外的缓存行为。