缓存发布请求的反向代理

缓存发布请求的反向代理

据我了解,Varnish 默认缓存“GET”和“HEAD”请求。

当我执行过长的 get 请求时,我的后端服务器会失败,因此我让它们响应 POST 而不是 GET。这很有效,但我需要一个可以配置为像 GET 一样缓存 POST 响应的反向代理。

是否有任何反向代理可以缓存这些发布请求?

答案1

如果您指定它,nginx 似乎会缓存 POST 请求。

proxy_cache_methods POST; # GET HEAD
proxy_cache_key "$uri|$request_body";
client_max_body_size 10k; # 413

答案2

反向代理缓存回应, 不是要求。 任何状况之下,缓存 POST 请求的响应是不现实的。HTTP 规范实际上不允许这样做,因为发送 POST 请求的行为本身就应该使该 URL 的任何缓存无效,并且默认情况下响应是不可缓存的。如果您希望缓存响应,则应该将重定向作为对 POST 请求的响应发送。

相关内容