proxy_no_cache

在 NGINX 的 proxy 模块中,`proxy_no_cache` 指令用于阻止对指定请求的缓存。 — NGINX HTTP Core

proxy_no_cache
httpserverlocation
语法proxy_no_cache condition | = | 0 | 1;
默认值none
上下文http, server, location
模块NGINX HTTP Core
参数1+

说明

在 NGINX 的 proxy 模块中使用 `proxy_no_cache` 指令来控制上游响应的缓存行为。通过使用该指令,您可以指定条件来决定响应是否有资格被缓存。该指令允许使用布尔表达式(求值为 true 或 false),从而根据各种请求参数(例如请求头、Cookie 和变量)灵活管理缓存存储。当指定条件求值为 true 时,NGINX 将不会缓存该响应,从而跳过缓存存储。 该指令支持一个或多个参数,允许管理员根据应用的需求精确地定制缓存逻辑。实际上,您可能希望对已认证用户或特定请求类型阻止缓存;例如,当请求包含某个特定的 cookie 值或存在某个头时。其结果是一个有效机制,确保敏感或特定于用户的数据直接从后端服务器实时获取而不被缓存。

配置示例

location /api {
    proxy_pass http://backend;
    proxy_no_cache $http_cache_control;
}

确保传递给 `proxy_no_cache` 的条件配置正确;否则,缓存行为可能无法按预期工作。

使用复杂的布尔表达式可能会使调试缓存问题变得困难。

当响应已经设置了缓存头时,此指令不适用;请确保正确管理响应头。