$sent_http_cache_control

$sent_http_cache_control 包含在 HTTP 响应中发送的 'Cache-Control' 头的值。 — NGINX Core (HTTP)

$sent_http_cache_control NGINX Core (HTTP)

说明

$sent_http_cache_control 变量检索 NGINX 发送给客户端的 'Cache-Control' HTTP 响应头的值。它在 NGINX 处理响应时被设置,并且可以被多种配置影响,例如 `expires`、`add_header` 或 `proxy_cache`。该变量在调试或自定义服务器返回的响应头时特别有用,允许你捕获并记录实际发送出的缓存指令。 通常,该变量的值可能包含诸如 'no-cache'、'private'、'max-age=3600'、'public' 之类的指令,或者如果未设置该头则可能为空。它可以与其他变量结合使用,根据各种服务器条件或配置动态调整响应头,从而增强对客户端和 HTTP 链中中间代理如何缓存响应的控制。 该变量仅在响应头发送之后进行评估,这意味着它反映的是实际包含在响应中的最终值。如果对 Cache-Control 头有多次设置或修改,该变量将保存响应完成前最后一次设置的值。

配置示例

location /example {
    proxy_pass http://backend;
    add_header Cache-Control "private, max-age=3600";
    log_format custom '$remote_addr - $remote_user [$time_local] "$request" $status $sent_http_cache_control';
    access_log /var/log/nginx/access.log custom;
}

子系统

http

可缓存

上下文

http, server, location, if, limit_except

如果响应中未设置 'Cache-Control' 头,则该变量将为空。

确保在正确的上下文中设置该头;如果在 location block 内设置,它只会应用于落在该上下文内的请求。

在响应头被发送之后再更改它们不会影响该变量。