腾讯云 cdn 回源时,是回源节点和 客户端(浏览器)加起来两次请求嘛? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
如果你希望学习 CDN 相关知识,那么建议你可以遍历以下软件的说明文档。
NGINX
cURL
selfcreditgiving
V2EX    CDN

腾讯云 cdn 回源时,是回源节点和 客户端(浏览器)加起来两请求嘛?

  •  
  •   selfcreditgiving 2021-11-09 04:00:17 +08:00 1815 次点击
    这是一个创建于 1443 天前的主题,其中的信息可能已经有所发展或是发生改变。
    还是说 cdn 节点先请求到服务器的 response ,然后 cdn 节点再把缓存好的返回给客户端,只有一次请求。

    对 cdn 的一些细节不太了解,请多指教
    5 条回复    2021-11-09 09:38:25 +08:00
    eason1874
        1
    eason1874  
       2021-11-09 06:45:26 +08:00
    就一次,CDN 就是反代,中间人。Client -> CDN nodes -> Server

    如果没配置缓存,那客户端访问一次,CDN 就回源一次。服务器只是接收到一次 CDN 节点请求,客户端请求不会到达。

    如果配置了缓存,那客户端第一次访问,CDN 回源一次,缓存了,客户端再次访问时,CDN 节点上的缓存有效就直接返回缓存结果,不会回源(没有请求到达服务器)。

    但缓存配置只是建议,CDN 不会完全遵循,CDN 有自己的缓存策略。比如小文件你设置一个月那真的能缓存一个月,几十万次都没流量到服务器,而大文件,你设置一个月,可能几个小时没流量就给清理掉了,一天回源好几次。
    selfcreditgiving
        2
    selfcreditgiving  
    OP
       2021-11-09 07:10:26 +08:00
    @eason1874 了解了多谢。 我遇到一个问题,是我的一个 动态 api 被调用了两次,疑问是不是 客户端和 cdn 节点各访问了一次呢。 那应该不是这个原因了。

    对了,不要介意我 cdn 还缓存动态 api 的内容,我在测试 cdn 的功能,
    原先的代码也没有根据动静分离,分别用不同的域名
    比如 静态资源: static.domain.com/img.jpg 动态接口:apidomain.com/api/v1/getData
    都是用一样的相对路径 /img/img.jpg /getData
    eason1874
        3
    eason1874  
       2021-11-09 07:37:00 +08:00
    @selfcreditgiving CDN 控制台可以查询 IP 是不是 CDN 节点的,你把访问日志 IP 复制去查下就知道是不是 CDN 的请求了

    另外在控制台也可以设置回源 header ,你添加一个特别的回源 header ,不要泄露,然后把它加入到日志格式,就可以从日志一眼看出来是不是 CDN 回源的请求了。你还可以拒绝没有这个 header 值的访问,那可以确保访问全部经过 CDN
    selfcreditgiving
        4
    selfcreditgiving  
    OP
       2021-11-09 08:14:28 +08:00
    @eason1874 又想了想 CDN 本质上应该算一个 DNS 服务器,把我托管在 CDN 的域名,又重新分配给不同的 ip (根据地域不同分配地理位置最近的服务器 ip ),客户端(比如浏览器)拿到这个 ip 后去访问服务器。
    这个服务器如果没有请求的内容(也就是没有命中),就会触发回源。

    这里又有一个细节的问题想问了。 触发回源,cdn 服务器去回源地址取到数据后,假如我是北京的,要等 cdn 服务器把数据从主节点,一个个下发 直到下发到 北京那个节点的 cdn 服务器后, 我的请求(浏览器的)才能从北京那个节点收到返回结果嘛?

    那样触发一次回源不是比正常的直连会慢很多了。
    eason1874
        5
    eason1874  
       2021-11-09 09:38:25 +08:00
    @selfcreditgiving CDN 是反代服务,不是 DNS 服务。CDN 会提供一个 CNAME 域名,通过 DNS 把流量调度到 CDN 的不同节点,但这个不是 CDN 业务本身,只是流量调度方式之一。也有非 DNS 调度的,Anycast 方式。

    如果客户端网络条件足够好,服务器也能负载得起流量,经 CDN 回源再返回是会比直连慢一点的,不过影响微乎其微,几十毫秒到一两百毫秒,大部分场景是感觉不明显的。

    有一种 CDN 类型专门做了链路加速,优化反代速度,通常叫全站加速,会贵一些,适合要求毫秒级的客户。
    /div>
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3678 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 04:17 PVG 12:17 LAX 21:17 JFK 00:17
    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