uwsgi_cache_background_update

`uwsgi_cache_background_update` 指令控制在请求未命中缓存时,是否在后台更新缓存(用于 NGINX 的 uWSGI 缓存机制)。 — NGINX HTTP Core

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

说明

`uwsgi_cache_background_update` 指令用于 NGINX 配置中的 `http`、`server` 和 `location` 块。当该指令设置为 `on` 时,NGINX 会在某个请求的响应未在缓存中找到时启动后台缓存更新。此举有助于减少后续请求的延迟,因为首次请求可能发生缓存未命中,但可以在客户端与服务器交互的同时透明地更新缓存内容。 该特性通过在新内容生成时将用户等待时间最小化来优化性能。如果 `uwsgi_cache_background_update` 设置为 `off`,NGINX 将不会尝试为未命中的请求刷新缓存,这意味着后续请求将继续收到陈旧或没有缓存的响应,直到有新的响应被手动写入缓存。因此,需要实时数据的应用可能更适合使用后台更新机制,以在不产生额外延迟的情况下确保响应是最新的。 该指令接受单个参数,可选值为 `on` 或 `off`。在使用该指令时,应确保缓存存储和 uWSGI 应用已被有效配置以处理后台操作,以避免因并发后台抓取导致服务器过载或性能下降。此外,应将缓存策略与 NGINX 配置中的其他缓存设置一并明确定义。

配置示例

uwsgi_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m;

location / {
    uwsgi_pass 127.0.0.1:9000;
    uwsgi_cache my_cache;
    uwsgi_cache_background_update on;
}

在高流量场景中使用此指令时要谨慎,因大量缓存未命中可能触发大量并发缓存更新,从而可能影响应用性能。

当在后台执行缓存更新时,确保你的 uWSGI 应用能够正确处理并发请求。