服务端渲染的静态页面如何进行 CDN 加速 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
samin
V2EX    程序员

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

  •  
  •   samin 2021-10-19 17:36:55 +08:00 3579 次点击
    这是一个创建于 1457 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    ps: 你缺少的只是一些 ETag 、缓存声明之类,看看 2 种 response 的 header 差异吧
    opengps
        9
    opengps  
       2021-10-19 21:55:11 +08:00
    既然是动态生成的静态内容,那么你完全可以将动态地址单独发布一个站点,把这个站点加速
    zoharSoul
        10
    zoharSoul  
       2021-10-19 23:01:10 +08:00
    应该没办法了. 这种情况下套 cdn 纯粹是线路上的优化, 缓存基本没用.
    zoharSoul
        11
    zoharSoul  
       2021-10-19 23:02:27 +08:00
    @zoharSoul #10 哦, 没我理解的那么动态. 我以为用户交互就会发生改变, 当我没说.
    huangsen365
        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
    lower
        13
    lower  
       2021-10-20 00:04:23 +08:00
    cdn 上传是什么意思?
    我用过阿里云的,只看到有配置源站的,,上传是到哪儿?
    justseemore
        14
    justseemore  
       2021-10-20 11:06:57 +08:00
    @lower 应该是扔到 oss 了. 然后 cdn 配置的回源到 oss
    samin
        15
    samin  
    OP
       2021-10-20 11:21:46 +08:00
    @lower 这里可能说得不够清楚,一般 CDN 配置的是站点,所谓的上传,其实就是把动态渲染好的静态资源,传输到那个站点,不好意思,说得太业余
    ysc3839
        16
    ysc3839  
       2021-10-20 11:32:29 +08:00
    你确定这是 CDN ? CDN 为什么要手动上传?不是自动从服务器拉取的吗?
    如果是静态文件托管服务,那没办法,只能修改后上传。
    如果是真的 CDN,配置 cache-control 响应头,让 CDN 缓存即可,更新后去 CDN 后台手动刷新缓存。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3549 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 04:18 PVG 12:18 LAX 21:18 JFK 00:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86