• 请不要在回答技术问题时复制粘贴 AI 生成的内容
samin
V2EX  ›  程序员

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

  •  
  •   samin · Oct 19, 2021 · 4039 views
    This topic created in 1691 days ago, the information mentioned may be changed or developed.

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

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

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

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

    为什么?是什么让你产生这种误解?
    oxromantic
        7
    oxromantic  
       Oct 19, 2021
    为什么?是什么让你产生这种误解?

    ps: 你缺少的只是一些 ETag 、缓存声明之类,看看 2 种 response 的 header 差异吧
    opengps
        9
    opengps  
       Oct 19, 2021
    既然是动态生成的静态内容,那么你完全可以将动态地址单独发布一个站点,把这个站点加速
    zoharSoul
        10
    zoharSoul  
       Oct 19, 2021
    应该没办法了. 这种情况下套 cdn 纯粹是线路上的优化, 缓存基本没用.
    zoharSoul
        11
    zoharSoul  
       Oct 19, 2021
    @zoharSoul #10 哦, 没我理解的那么动态. 我以为用户交互就会发生改变, 当我没说.
    huangsen365
        12
    huangsen365  
       Oct 19, 2021
    设置 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  
       Oct 20, 2021
    cdn 上传是什么意思?
    我用过阿里云的,只看到有配置源站的,,上传是到哪儿?
    justseemore
        14
    justseemore  
       Oct 20, 2021
    @lower 应该是扔到 oss 了. 然后 cdn 配置的回源到 oss
    samin
        15
    samin  
    OP
       Oct 20, 2021
    @lower 这里可能说得不够清楚,一般 CDN 配置的是站点,所谓的上传,其实就是把动态渲染好的静态资源,传输到那个站点,不好意思,说得太业余 😂
    ysc3839
        16
    ysc3839  
       Oct 20, 2021
    你确定这是 CDN ? CDN 为什么要手动上传?不是自动从服务器拉取的吗?
    如果是静态文件托管服务,那没办法,只能修改后上传。
    如果是真的 CDN,配置 cache-control 响应头,让 CDN 缓存即可,更新后去 CDN 后台手动刷新缓存。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2754 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 12:30 · PVG 20:30 · LAX 05:30 · JFK 08:30
    ♥ Do have faith in what you're doing.