事情是这样的,最近写了一个小软件,登录的时候会从网站上读取 txt 数据,为了提升用户体验,就给 txt 套上了 cdn
然而,使用了一段时间之后发现,在阿里云 CDN 控制台 刷新了 URL 之后 部分节点仍然返回给用户旧的缓存文件(返回的数据如果是 gzip 压缩的话,内容就是新的正常的,如果是没有进行压缩过的,内容就是旧的)
大部分浏览器都是带 gzip 的,对于使用浏览器的用户基本没啥影响
但是,像楼主这样放在 app、软件里面使用的话,因为一般软件不带 gzip,那影响就大了。
排查了一个晚上,一直以为是软件没写好导致的问题,最后竟然意外的发现是阿里云的锅
1
mokeyjay 2019-11-10 16:53:30 +08:00
工单客服怎么跟你解释的?
|
2
Athrob 2019-11-10 16:55:14 +08:00
加版本号啊, cdn 都这样, 不可能实时刷新.
|
3
xuancaixiaohai OP 已提交工单,经过一系列证明,最终,阿里云工程师承认了是阿里云节点刷新策略问题导致的 bug
顺便吐槽一下阿里云的工程师,也太自大了吧!阿里云稳是没错,但是我把节点 IP,出现问题的情况都描述清清楚楚了,工程师连绑定 hosts 测试一下都懒得测试,就回复工单说没有问题,让我一度怀疑,这是不是阿里云的 bug。 |
4
xuancaixiaohai OP @mokeyjay 工单一开始我明确提供节点+复现方法给阿里云,但是工程师一直不承认,经过一天的坚持,最终承认是节点刷新策略有问题
|
5
xuancaixiaohai OP @Athrob 1.中午 12 点左右提交第一次刷新的,中间还刷新了 3 4 次 到晚上凌晨 1 点的时候 节点内容还没变,给十几个小时时间给 CDN 刷新够长了吧。
2.刚才阿里云已承认问题,而且说是修复了 |
6
Athrob 2019-11-10 17:01:30 +08:00
@xuancaixiaohai #4 被打脸
|
7
Athrob 2019-11-10 17:03:12 +08:00
@xuancaixiaohai #5 嗯嗯, 避免阿里云 cdn 再出什么 bug, 可以对 cdn 访问加上版本号, 这样也不用手动刷新.
|
8
shoaly 2019-11-10 17:03:48 +08:00
最好用还是 用 demo.txt?v=100
|
9
xuancaixiaohai OP @Athrob 不好加啊 是放在软件里面的 软件成品发布之后就改不了 url 地址了
|
10
xuancaixiaohai OP @shoaly 成品 app 发布之后咋控制这个 v=100 弄个动态页面控制的话又划不来,那还不如不用 CDN 了 直接源站访问 txt
弄个静态页面控制 那不一样面临这个问题 |
11
xuancaixiaohai OP 整个事件最气人的就是阿里云工程师的态度了吧,花了几个小时发现是 CDN 的问题,但是在摆明问题、详细说明复现方法的情况下花了一天时间才让他们相信是 CDN 的问题
|
12
akira 2019-11-10 17:30:52 +08:00
如果你不听 2l 8l 的建议,继续这样使用 cdn,照样会有类似的问题
|
13
xuancaixiaohai OP @akira 我也想啊 关键是咋控制 ver 啊 app 发布之后不做改动 怎么变 ver 呢( app 版本可能几个月都不更新一次,变化的就是 txt 文本的内容)
|
14
hasdream 2019-11-10 17:42:57 +08:00 via Android
加 不缓存头部信息 txt 后缀默认缓存的
|
15
xuancaixiaohai OP @hasdream 额 不缓存 txt 文本吗? 但是一般 txt 这种文件都会在 CDN 里面设置成缓存把 所以我特意来 v2 给大家提个醒
|
16
xuancaixiaohai OP 根据阿里云说 这次问题不管带不带 gzip 都会返回旧的 也就是浏览器用户也会受影响
|
17
imnpc 2019-11-10 17:52:59 +08:00
这种应该走单独的非 CDN 通道的 或者自己用策略定时刷新
我们 APP 里面是访问接口获取版本号的 不会用 txt 静态文件 |
18
xuancaixiaohai OP @imnpc 文本有 70kb 左右的内容 还有海外用户 加上文本内容半个多月才更新一次 所以就套了 CDN
用策略定时刷新是什么意思?定时调用阿里云 CDN 的 api 刷新接口刷新吗? |
19
xuancaixiaohai OP 是刷新策略问题,不是说只有 txt 文件才会受影响,所有被节点缓存的文件,比如 js、css、html 啥的都会受影响,我只是刚好用 txt 发现了
|
20
czb 2019-11-10 18:17:02 +08:00 via Android
8L 的做法其实算是普遍的实现了
|
21
Nicoco 2019-11-10 23:18:23 +08:00
套路云也敢用,不被套路个几次都不叫套路云。
用了套路云,有没有感觉被攻击的次数多了,套路云销售紫椒高防的电话也多了? 顺便自来水一波良心云。 |