srcache_request_cache_control
`srcache_request_cache_control` 指令通过特定的 HTTP 头控制客户端请求如何影响缓存行为,从而管理缓存。
Transparent subrequest-based caching layout for arbitrary NGINX locations
·
httpserverlocation
语法srcache_request_cache_control on | off;
默认值off
上下文http, server, location
参数flag
说明
srcache_request_cache_control 指令是 NGINX ngx_srcache 模块的一部分,该模块提供了对子请求进行缓存的机制。该指令允许配置请求中的 Cache-Control 头如何影响已存储响应的缓存逻辑。启用后,它指示 NGINX 遵循客户端在请求中发送的 Cache-Control 头(no-store、no-cache、private 等),从而控制响应是否可以被缓存。这样可以在细粒度层面灵活且精细地管理缓存行为,适用于需要根据客户端请求属性采用不同缓存策略的应用程序。
当该指令设置为 'on' 时,它会启用对 Cache-Control 请求头的处理。这在动态内容交付的环境中特别有用,因为它允许根据客户端特定条件决定响应是否缓存。例如,如果客户端发出带有 Cache-Control: no-store 头的请求,则相应的响应不会被缓存,从而始终可以获取该资源的最新版本。相反,如果不存在此类头,则应用标准缓存规则,从而降低服务器负载并提高响应时间。
配置示例
http {
server {
location / {
srcache_request_cache_control on;
proxy_pass http://backend;
}
}
}⚠
确保 srcache_request_cache_control 与正在一起使用的其他缓存指令兼容;否则可能会出现意外的缓存行为。
⚠
启用时,如果客户端经常使用类似 no-cache 的头部,该指令可能导致某些响应未按预期被缓存。
⚠
在部署到生产环境之前,务必在预发布环境中彻底测试缓存行为,尤其是在同时存在静态和动态内容的情况下。