服务端渲染的静态页面如何进行 CDN 加速

2021-10-19 17:36:55 +08:00
 samin

纯静态的静态资源只要上传到 CDN 平台就可以进行加速。但是对于服务端渲染后的静态页面( 比如可配置标题的 html 首页,需要后台渲染 ),因为界面是需要通过服务器进行渲染才可以拿到的,所以无法通过服务器直接进行 CDN 加速,我目前做法是:

每一次在后台进行业务修改,触发页面渲染,把产生的纯静态文件通过 api 上传到 CDN 平台拿到加速链接,传给给前端界面

感觉这种方式有点投机取巧,比较 low,请问下业内有什么比较好的方案吗 ?

2846 次点击
所在节点    程序员
16 条回复
eason1874
2021-10-19 17:39:54 +08:00
CDN 根据文件目录或者后缀,缓存问题,可以把版本 hash 加在文件路径上
dengjscn
2021-10-19 17:51:48 +08:00
CDN 也是要靠多节点实现加速的,自然你也可以搞多台服务,分别部署在几个大区,主机进行分发
dengjscn
2021-10-19 17:52:00 +08:00
我的拙见
samin
2021-10-19 17:53:53 +08:00
@dengjscn 感谢 这个确实是 CDN 的本质 我的问题是想知道基于已有的 CDN 平台,我相信没多少个企业可以建立自己的 CDN 系统吧 😂
zktz
2021-10-19 18:10:13 +08:00
你可以更新一次就调用一次 CDN 厂商的刷新接口。
你所谓的上传是什么意思? 相当于 CDN 厂商的预热?
tabris17
2021-10-19 18:17:22 +08:00
> 因为界面是需要通过服务器进行渲染才可以拿到的,所以无法通过服务器直接进行 CDN 加速
==============

为什么?是什么让你产生这种误解?
oxromantic
2021-10-19 18:46:47 +08:00
为什么?是什么让你产生这种误解?

ps: 你缺少的只是一些 ETag 、缓存声明之类,看看 2 种 response 的 header 差异吧
DoctorCat
2021-10-19 19:30:33 +08:00
TCP 加速的业务 TLS 加速类的也有,效果怎么样需要实测
opengps
2021-10-19 21:55:11 +08:00
既然是动态生成的静态内容,那么你完全可以将动态地址单独发布一个站点,把这个站点加速
zoharSoul
2021-10-19 23:01:10 +08:00
应该没办法了. 这种情况下套 cdn 纯粹是线路上的优化, 缓存基本没用.
zoharSoul
2021-10-19 23:02:27 +08:00
@zoharSoul #10 哦, 没我理解的那么动态. 我以为用户交互就会发生改变, 当我没说.
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
lower
2021-10-20 00:04:23 +08:00
cdn 上传是什么意思?
我用过阿里云的,只看到有配置源站的,,上传是到哪儿?
zpfhbyx
2021-10-20 11:06:57 +08:00
@lower 应该是扔到 oss 了. 然后 cdn 配置的回源到 oss
samin
2021-10-20 11:21:46 +08:00
@lower 这里可能说得不够清楚,一般 CDN 配置的是站点,所谓的上传,其实就是把动态渲染好的静态资源,传输到那个站点,不好意思,说得太业余 😂
ysc3839
2021-10-20 11:32:29 +08:00
你确定这是 CDN ? CDN 为什么要手动上传?不是自动从服务器拉取的吗?
如果是静态文件托管服务,那没办法,只能修改后上传。
如果是真的 CDN,配置 cache-control 响应头,让 CDN 缓存即可,更新后去 CDN 后台手动刷新缓存。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/808960

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX