我只是在 Google 平台上进行测试,并在 LB 设置后面设置了几个 Nginx VM,这些 VM 全局缓存到 GCDN。我想为已登录的用户(使用 wordpress cookie)绕过缓存。
最好的策略是什么?到目前为止,我一直在使用 VM -> Varnish -> Cloudflare,并根据 cookie 绕过 Varnish 的缓存。我编写了一些工作代码来为 Cloudflare 执行相同操作。但是,GCDN/GLB 似乎只具有粘性会话/cookie 功能,这对于我需要做的事情不适用。
我显然可以使用 nginx 来检测 cookie 并设置Cache-Control: no cache
标头以防止缓存,但如果页面已经在缓存中,那么一切就都结束了。任何建议都值得赞赏,谢谢。
答案1
在这种情况下,当存在 Set-Cookie 标头时,Google CDN 将不会缓存响应。话虽如此,您说得对,如果 URL 已经在 Cloud CDN 上,则请求很可能不会到达您的后端,并且响应将由 Cloud CDN 给出。我说很可能是因为还有其他值会影响可缓存性在云 CDN 中。
目前,如果 URL 已经在缓存中,则需要使缓存无效第一的。
对于不同的场景,你可以仔细检查选项以防止 Cloud CDN 缓存这里。
尽管如此,如果你真的想要一个功能,可以让你考虑已经登录的用户。我建议你使用以下方式打开功能请求关联。
谢谢