RT
目前网站是全部流量走单点 loadbalancer,然后后面再区分读缓存还是处理。希望能把给未登录用户的缓存尽可能前推到边缘 CDN 上
我很好奇有些网站登陆不登陆连 IP 都不一样……怎么实现的?
目前网站是全部流量走单点 loadbalancer,然后后面再区分读缓存还是处理。希望能把给未登录用户的缓存尽可能前推到边缘 CDN 上
我很好奇有些网站登陆不登陆连 IP 都不一样……怎么实现的?
|
wvidcJun 19, 2017
1
同求方法 用子域名改动太大~
|
|
2
@wvidc 我这边即便登陆和不登陆用户分开子域名都没法很好处理。用户登陆后跳转不同域名,以及登陆用户分享了 [登陆后域名] 被未登录用户访问跳转未登录域名都挺麻烦的……
|
|
huangtao728Jun 19, 2017 via Android
3
你可以看看 Alt-Svc
不过也有缺点,只有某些浏览器支持 |
|
4
这个要看 CDN 是否支持根据 cookie 进行回源。
我只知道 Cloudflare 企业版和 CloudFront 能根据 Cookie 判断用户有没有登录,可以针对未登录用户进行缓存。 |
|
0ZXYDDu796nVCFxqJun 19, 2017 via iPhone
5
1. 登录用户跳到 my.expamle.com
2. 登录用户跳到 /my,这个路径附加头部 cache-control: private, no-cache 3. 登录用户附加一个 ajax 请求,返回隐私数据 |
|
millkenJun 19, 2017
6
nginx lua 可以做到,根据 cookie 决定后端的 upstream。
|
|
sumhatJun 19, 2017
8
除非网站用了特殊的 js 在加载的时候自行判断 cookie 之类的,然后进行不同类型的加载。第三方 CDN 是不会帮你做这个事情的。
|
|
9
CDN 上通常实现这个的方式是把 cookie 的值作为 cache key 的一部分,已登录和未登录会造成某个 cookie 的 value 不一样,以此来实现对 cache key 的控制。
|
|
11
@huangtao728 HTTP Alternative Services 现在只有 firefox 支持啊…… firefox 市场占有率在大陆都快绝迹了
|