srcache_methods
`srcache_methods` 指令指定在 NGINX 的透明子请求缓存系统中哪些 HTTP 方法有资格被缓存。
Transparent subrequest-based caching layout for arbitrary NGINX locations
·
httpserverlocation
语法srcache_methods method1 method2 ...;
默认值GET;
上下文http, server, location
参数1+
说明
srcache_methods 指令允许用户定义哪些 HTTP 请求方法可以被 ngx_srcache 模块的子请求缓存机制缓存。默认情况下,缓存通常限制为像 GET 和 HEAD 这样的安全方法,但该指令提供了灵活性,可以在应用需要时包括其他方法,例如 POST、PUT 和 DELETE。这在后端资源在 POST 请求后保持不变,或需要缓存 PUT 或 DELETE 请求的响应以优化性能的场景中尤其有用。
该指令的语法接受一个或多个作为参数的 HTTP 方法名称,这些名称以 bitmask 格式定义。实际上,这意味着你可以在指令中组合多个方法,从而根据应用的需求微调缓存策略。在配置此指令时,需要在提高缓存效率与避免返回过期内容的风险之间取得平衡,尤其是针对那些已知会修改服务器状态的方法。因此,实现时还应考虑其他指令和缓存策略,以全面控制缓存行为。
srcache_methods 指令可以放在 http、server 或 location 上下文中,允许开发者在服务器配置的不同作用域设置此行为。这种配置灵活性使得可以针对应用的不同部分(例如 API 端点或静态资源路径)制定量身定制的缓存策略。
配置示例
location /api {
srcache_methods GET POST;
}⚠
修改服务器状态的缓存方法如果没有谨慎管理,可能会导致提供陈旧的数据。
⚠
在使用非安全方法(例如 POST, PUT)时,确保已实施适当的缓存失效策略。