proxy_cache_use_stale
proxy_cache_use_stale 指令控制何时向客户端提供过期的缓存响应。 — NGINX HTTP Core
proxy_cache_use_stale
httpserverlocation
语法proxy_cache_use_stale error | timeout | invalid_header | updating | http_500;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1+
说明
proxy_cache_use_stale 指令允许 NGINX 在满足特定条件时提供可能已过期的缓存响应,而不是从后端服务器获取最新内容。 这在高延迟或宕机情形下尤其有用,可提升响应速度并减轻后端负载。 该指令可以设置多个参数,用以指定在何种条件下应使用过期缓存数据。 例如,如果设置为 'error',当后端服务器返回任何错误状态时 NGINX 会提供过期内容。同样,'timeout'、'updating' 和 'http_500' 也可以作为提供过期数据的条件。多个条件可以在单个指令中使用,条件之间用空格分隔。 当指令以特定参数启用时,如果 NGINX 在尝试获取最新内容时遇到符合某一条件的情况(例如超时或服务器错误),它将自动提供与该请求对应的最后一条缓存响应,而不是向客户端返回错误。这能提高弹性和用户体验,尤其是对于频繁访问且即便略微过期仍可能有效的资源。
配置示例
location /api {
proxy_pass http://backend;
proxy_cache my_cache;
proxy_cache_use_stale error timeout;
}⚠
如果未根据应用程序的要求正确配置,使用此指令可能会无意中导致提供过时的内容。
⚠
过度使用此指令可能会掩盖后端问题而不解决根本原因,从而导致糟糕的用户体验。