fastcgi_cache_background_update

指令 `fastcgi_cache_background_update` 允许在提供当前响应的同时在后台更新缓存。 — NGINX HTTP Core

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

说明

指令 `fastcgi_cache_background_update` 是一个布尔标志,用于控制当访问的内容已过期时,NGINX 是否在后台更新缓存的 FastCGI 内容。当设置为 `on` 时,它允许在发起新请求以获取更新内容的同时并行提供现有的缓存响应,这在高流量情况下尤其有用,因为等待缓存刷新可能导致延迟和更长的加载时间。这意味着用户将继续接收缓存版本,而耗时的后端请求将在后台处理。 相反,如果该指令设置为 `off`(默认值),请求过期缓存响应的用户将不得不等待发起新的请求来获取更新版本,从而产生额外的延迟。这在用户体验和资源利用方面效率较低。该指令可以应用于 `http`、`server` 或 `location` 上下文,从而根据应用或特定路由的需求灵活控制缓存行为。 正确设置此指令可大幅提升严重依赖 FastCGI 缓存的 Web 应用的响应性和速度,因为它能最小化缓存内容更新时的负载和等待时间。然而,必须谨慎处理缓存失效,以防长时间提供过期内容,尤其是在数据频繁变化的动态应用中。

配置示例

location /api {
    fastcgi_pass backend;
    fastcgi_cache my_cache;
    fastcgi_cache_background_update on;
}

确保后端能够高效地处理并发请求,以避免性能问题。

注意缓存过期时间设置,以防止无限期提供过期数据。