我想从一个网址的两个服务器上提供两个不同的页面。像facebook一样的登录页面(登录页面与同一网址上的个人资料页面)。
服务器如何知道要投放的页面?我选择了cookie,因为我无法想到其他解决方案。
注销时还需要删除cookie。我最终在nginx配置上使用分支将请求推送到正确的服务器并在那里删除(设置过期时间)cookie。
好的,现在是bug本身。 Chrome会缓存此网址,当用户点击链接(指向同一个网址)时,Chrome会向服务器发送请求并从缓存中打开错误的版本。它在检查调试面板中的“禁用缓存”时起作用,我也通过使用wireshark检查流量来确认这一点。
从浏览器的角度回顾网址:
ex.com/ - Server A
ex.com/login_check - Server A -> redirects to / with cookie
ex.com/ - Server B
ex.com/?logout - Server A and remove cookie
ex.com/ - chrome skips request and serves cached content from B
这怎么可以修复?此外,这种方法看起来太多魔术,许多事情都可能出错。它会以不同的方式完成吗?
答案 0 :(得分:0)
可以通过为两个服务器的响应添加标头来解决此问题。
Cache-Control: private, max-age=0, must-revalidate, no-store;