uwsgi_cache_revalidate

指令 `uwsgi_cache_revalidate` 控制在向客户端提供缓存响应之前,NGINX 是否向 uWSGI 服务器重新验证这些缓存响应。 — NGINX HTTP Core

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

说明

指令 `uwsgi_cache_revalidate` 用于管理缓存响应在新鲜度方面的处理方式。当启用此指令时,对于被视为过期的缓存响应,NGINX 会向 uWSGI 服务器发出重新验证请求。这意味着当缓存响应的过期时间(由 `uwsgi_cache_valid` 指令定义)已过时,NGINX 不会直接提供该响应,而是会向服务器确认内容是否仍然有效。这有助于在内容频繁更新的情况下向用户提供最准确、最新的响应。 该指令可以在多个上下文中使用,包括 http、server 和 location 范围,从而允许在应用的不同部分采用灵活的缓存策略。它接受一个布尔参数,用于启用或禁用重新验证过程。启用此指令可能会增加一些开销,因为它涉及向 uWSGI 服务器发出额外请求,然而它能确保最终用户的数据一致性和新鲜度。 在应用数据经常变化且需要迅速反映这些变化、避免长时间陈旧的环境中,使用 `uwsgi_cache_revalidate` 特别有用。它可以与其他缓存指令(例如 `uwsgi_cache`、`uwsgi_cache_key` 和 `uwsgi_cache_valid`)配合使用,以提供满足应用需求的全面缓存配置。

配置示例

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

location / {
    uwsgi_pass my_uwsgi;
    uwsgi_cache my_cache;
    uwsgi_cache_revalidate on;
    uwsgi_cache_valid 200 1h;
}

启用重新验证可能会引入额外延迟,因为会向 uWSGI 服务器 发出额外的请求。

确保你的 uWSGI 应用能够高效处理重新验证请求,以避免性能下降。

在没有适当缓存失效策略且管理不当的情况下使用 `uwsgi_cache_revalidate` 可能导致应用行为不一致。