从两台服务器为两个网址提供两页

时间:2016-01-09 23:42:52

标签: caching cookies nginx browser-cache

我想从一个网址的两个服务器上提供两个不同的页面。像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

这怎么可以修复?此外,这种方法看起来太多魔术,许多事情都可能出错。它会以不同的方式完成吗?

1 个答案:

答案 0 :(得分:0)

可以通过为两个服务器的响应添加标头来解决此问题。 Cache-Control: private, max-age=0, must-revalidate, no-store;