🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 说明 当缓存失效的时候,使用陈旧的缓存;对于某些对实时性不高的场景,返回旧数据比返回404要好; ## proxy_cache_use_stale 当无法从原始服务器获取最新的内容时,NGINX可以分发缓存中的陈旧(stale,编者注:即过期内容)内容。这种情况一般发生在关联缓存内容的原始服务器宕机或者繁忙时。比起对客户端传达错误信息,NGINX可发送在其内存中的陈旧的文件。NGINX的这种代理方式,为服务器提供额外级别的容错能力,并确保了在服务器故障或流量峰值的情况下的正常运行; ``` proxy_cache_use_stale error | timeout | invalid_header | updating | http_500 | http_502 | http_503 | http_504 | http_403 | http_404 | http_429 | off ...; ``` 可选参数: | 可选参数 | 含义 | | --- | --- | | error | 与上游建立连接,发送请求,读取响应头出错时 | | timeout | 与上游建立连接,发送请求,读取响应头超时时 | | invalid_header | 无效头部时 | | updating | 缓存过期,正在更新时 | | http_500 | 返回状态码500时 | | http_502 | 返回状态码502时 | | http_503 | 返回状态码503时 | | http_504 | 返回状态码504时 | | http_403 | 返回状态码403时 | | http_404 | 返回状态码404时 | | http_429 | 返回状态码429时 | 默认值: ``` proxy_cache_use_stale off; ``` 上下文: ``` http | server | location ``` ## proxy_cache_background_update 果客户端一个请求访问到了一个过期的缓存缓存,则允许nginx的后台请求上游服务器更新这个缓存,这个行为是nginx自身完成的; 语法: ``` proxy_cache_background_update on | off; ``` 默认值: ``` proxy_cache_background_update off; ``` 上下文: ``` http | server | location ``` ## 示例 ``` location / { proxy_cache cache_zone; proxy_no_cache $nocache; proxy_cache_valid 200 5m; add_header Nginx-Cache-Status "$upstream_cache_status"; proxy_cache_use_stale error timeout updating; proxy_cache_background_update on; proxy_pass http://back_end; } ```