我正在尝试使用 Cloudflare 缓存我的资产
Cloudflare 状态在这里那“如果您的服务器没有缓存和私有标头,CloudFlare 将不会缓存您的网站或静态内容”
正如您从我的文件响应中看到的,Cache-control: no-cache="set-cookie"
正在通过:
https://redbot.org/?uri=http%3A%2F%2Fdev.shareasimage.com%2Fstatic%2Fapp%2Fimages%2Fads%2Fts.ad.png
我尝试使用删除它Header unset Cache-control
,但没有成功
有人遇到过这种情况吗?
答案1
我猜你遇到了一个错误,因为你有两个不同的大写字母Cache-Control
:
Cache-Control: max-age=259200, no-cache="set-cookie"
Cache-control: no-cache="set-cookie"
HTTP 标头不区分大小写,但您可能遇到过一种奇怪的边缘情况,即当 Apache 找到与您要删除的内容匹配的内容时,它会停止查找 - 因此第一个Cache-Control
会被删除,而 则Cache-Control
不会。
要么找到您的配置或代码中Cache-control
设置标头的位置,并将其完全大写Cache-Control
(然后Header unset Cache-Control
应该删除这两个值),要么让 Apache 搜索匹配的不区分大小写的名称两次,希望这能起作用:
Header unset Cache-Control
Header unset Cache-control
答案2
我没有提到我的服务器位于 AWS 上的负载均衡器后面。AWS
ELB(他们称之为负载均衡器)有一个设置调用,stickiness
当你打开它时,他们会设置一个 cookie 以确保访问者始终被发送到同一台服务器
这会产生额外的副作用,即在服务器满足请求后添加以下标头:
Cache-control: no-cache="set-cookie"
我需要关闭粘性以防止设置此标题
回想起来,我应该更详细地描述我的设置,以帮助调试这个问题,
谢谢你的帮助,Shane