$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 内设置,它只会应用于落在该上下文内的请求。
⚠
在响应头被发送之后再更改它们不会影响该变量。