纯静态的静态资源只要上传到 CDN 平台就可以进行加速。但是对于服务端渲染后的静态页面( 比如可配置标题的 html 首页,需要后台渲染 ),因为界面是需要通过服务器进行渲染才可以拿到的,所以无法通过服务器直接进行 CDN 加速,我目前做法是:
每一次在后台进行业务修改,触发页面渲染,把产生的纯静态文件通过 api 上传到 CDN 平台拿到加速链接,传给给前端界面
感觉这种方式有点投机取巧,比较 low,请问下业内有什么比较好的方案吗 ?
1
eason1874 2021-10-19 17:39:54 +08:00
CDN 根据文件目录或者后缀,缓存问题,可以把版本 hash 加在文件路径上
|
2
dengjscn 2021-10-19 17:51:48 +08:00
CDN 也是要靠多节点实现加速的,自然你也可以搞多台服务,分别部署在几个大区,主机进行分发
|
3
dengjscn 2021-10-19 17:52:00 +08:00
我的拙见
|
4
samin OP @dengjscn 感谢 这个确实是 CDN 的本质 我的问题是想知道基于已有的 CDN 平台,我相信没多少个企业可以建立自己的 CDN 系统吧 😂
|
5
zktz 2021-10-19 18:10:13 +08:00
你可以更新一次就调用一次 CDN 厂商的刷新接口。
你所谓的上传是什么意思? 相当于 CDN 厂商的预热? |
6
tabris17 2021-10-19 18:17:22 +08:00
> 因为界面是需要通过服务器进行渲染才可以拿到的,所以无法通过服务器直接进行 CDN 加速
============== 为什么?是什么让你产生这种误解? |
7
oxromantic 2021-10-19 18:46:47 +08:00
为什么?是什么让你产生这种误解?
ps: 你缺少的只是一些 ETag 、缓存声明之类,看看 2 种 response 的 header 差异吧 |
9
opengps 2021-10-19 21:55:11 +08:00
既然是动态生成的静态内容,那么你完全可以将动态地址单独发布一个站点,把这个站点加速
|
10
zoharSoul 2021-10-19 23:01:10 +08:00
应该没办法了. 这种情况下套 cdn 纯粹是线路上的优化, 缓存基本没用.
|
12
huangsen365 2021-10-19 23:10:33 +08:00
设置 header 的 Cache-Control
参考阿里云的文档 或者 其它 CDN 厂商文档 https://help.aliyun.com/document_detail/27137.html#title-jko-z97-6rp 甚至直接自己动手通过 curl 命令去参考大厂的 curl -I https://www.taobao.com | grep -i cache-control curl -I https://www.jd.com | grep -i cache-control |
13
lower 2021-10-20 00:04:23 +08:00
cdn 上传是什么意思?
我用过阿里云的,只看到有配置源站的,,上传是到哪儿? |
15
samin OP @lower 这里可能说得不够清楚,一般 CDN 配置的是站点,所谓的上传,其实就是把动态渲染好的静态资源,传输到那个站点,不好意思,说得太业余 😂
|
16
ysc3839 2021-10-20 11:32:29 +08:00
你确定这是 CDN ? CDN 为什么要手动上传?不是自动从服务器拉取的吗?
如果是静态文件托管服务,那没办法,只能修改后上传。 如果是真的 CDN,配置 cache-control 响应头,让 CDN 缓存即可,更新后去 CDN 后台手动刷新缓存。 |