proxy_cache_background_update

'proxy_cache_background_update' 指令允许在提供过期响应时更新缓存。 — NGINX HTTP Core

proxy_cache_background_update
httpserverlocation
语法proxy_cache_background_update on | off;
默认值off
上下文http, server, location
模块NGINX HTTP Core
参数flag

说明

'proxy_cache_background_update' 指令是 NGINX HTTP 模块中的一个标志,决定当向客户端提供过期资源时 NGINX 是否应尝试在后台获取该缓存资源的最新版本。默认情况下,当对已过期(即已超过其过期时间)的缓存项发出请求时,NGINX 通常会返回该资源的过期版本。如果将 'proxy_cache_background_update' 指令设置为 'on',NGINX 不仅会提供过期响应,还会在后台发起请求以获取该资源的更新版本,从而确保下一次对该资源的客户端请求能以最小的性能开销收到最新版本。

配置示例

http {
    proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m max_size=1g;

    server {
        location / {
            proxy_pass http://backend;
            proxy_cache my_cache;
            proxy_cache_background_update on;
        }
    }
}

如果与 'proxy_cache_use_stale' 一起使用,请确保正确配置以处理后台更新,避免在无意中提供过期内容。

将此指令设置为 'on' 可能会在大量对过期内容的请求同时发生时导致后端负载增加。

请注意,启用此功能在缓存刷新期间可能会导致与后端服务器的并发连接数增加。