V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
如果你希望学习 CDN 相关知识,那么建议你可以遍历以下软件的说明文档。
NGINX
cURL
isbase
V2EX  ›  CDN

一个域名,根据用户 ip 就近回源,用哪种方案比较好?

  •  
  •   isbase · 136 天前 · 3657 次点击
    这是一个创建于 136 天前的主题,其中的信息可能已经有所发展或是发生改变。

    例如 美国用户访问时回源到 美国的源站。

    伪代码表示我想实现的意图:

    Browser:
        Access CDN domain (cdn.com)
    CDN:
        if user IP is US:
            Serve from us.com origin
        else if user IP is Europe:
            Serve from eu.com origin
        else if user IP is China:
            Serve from cn.com origin
        else:
            Default action (not specified)
    
    第 1 条附言  ·  136 天前

    png

    第 2 条附言  ·  136 天前

    示意图

    第 3 条附言  ·  136 天前
    源站内容是一样的
    第 4 条附言  ·  135 天前
    为啥这么做?

    部分内容在 CDN 缓存时间非常短,需要频繁回源。如果只有一个源站,那么全球其他地域访问就要跨越半个地球回源。非常慢
    34 条回复    2024-07-18 17:30:49 +08:00
    yuzo555
        1
    yuzo555  
       136 天前
    首先 CDN 节点要够广,确保用户附近有节点;
    然后就是设置域名源站,域名源站的 DNS 根据位置解析不同的 IP 源站。
    herozzm
        2
    herozzm  
       136 天前
    这不就是 cdn 的原理嘛
    ZeekChatCom
        3
    ZeekChatCom  
       136 天前 via iPhone
    @herozzm 并不是。一般而言,CDN 是要求访问节点靠近用户,而不是源站。
    yushiro
        4
    yushiro  
       136 天前 via iPhone   ❤️ 1
    这跟 cdn 有啥关系?你内容都不放 cdn 节点,要求用户访问源站,那应该在 dns 上做文章啊。
    类似国内可以配置电信,联通,移动不同线路不同的 ip
    lp7631010
        5
    lp7631010  
       136 天前
    想自建 cdn ?
    duanxianze
        6
    duanxianze  
       136 天前
    只能从 dns 解析下手,和 cdn 目的不同,原理相同
    ersic
        7
    ersic  
       136 天前   ❤️ 1
    ladypxy
        8
    ladypxy  
       136 天前 via iPhone
    这不就 smartdns
    Sayuri
        9
    Sayuri  
       136 天前
    阿里云企业版 DNS 可以解决这个问题。
    leonshaw
        10
    leonshaw  
       136 天前
    源站内容不一样?
    xzysaber
        11
    xzysaber  
       136 天前
    这个目的是啥?为了省流?
    只对特定区域使用 CDN 。
    yuzo555
        12
    yuzo555  
       136 天前   ❤️ 2
    @yushiro @xzysaber
    “回源”这个词在 CDN 领域是指 CDN 节点访问用户的源站的过程,这个词的意思是“CDN 节点去访问”,而不是“用户去访问”。
    “美国用户访问时回源到 美国的源站”,意思就是美国的用户访问 CDN 时,如果 CDN 没有缓存需要访问源站获取资源,则访问美国的源站。
    IvanLi127
        13
    IvanLi127  
       136 天前
    如果需求是要回源,这种不就是边缘计算吗?直接把源放在离用户最近的节点。要全部自建的话就按 CDN 的方案做,不然就按云服务商的方案做边缘计算。
    DoNotSpeek
        14
    DoNotSpeek  
       136 天前
    这需求跟 cdn 、回源没啥关系吧
    入口网址里加个 IP 地址库,根据 IP 地址重定向到相应的域名就是了。
    dzdh
        15
    dzdh  
       136 天前
    @yuzo555 #12


    分情况的吧?前提是用户[已经]到达哪个节点吧?

    如果美国的用户,已经到达了中国的节点,你再重新回到美国源站拉数据?不应该是从 CDN 节点就近的中国节点拉数据才更快吗?

    除非源站内容不一样或者 GDPR 要求。
    dzdh
        16
    dzdh  
       136 天前
    重新看了题目看懂了。

    那这就不就是 dns 解析上下手的问题 0.0
    wy315700
        17
    wy315700  
       136 天前
    @dzdh
    OP 要做的就是这种
    如果美国的用户,已经到达了中国的节点,再重新回到美国源站拉数据。


    一般在电商场景会比较常见,比如不同国家售卖的东西不一样,但是前端节点可以共用。

    类似于 Google Global Cache 。前端 CDN 是一方面,后端根据你的账户返回不同的存储区。

    @isbase

    这种只能自建 CDN 节点并且加 IP 库来判断,可以用 OpenResty 来开发
    dzdh
        18
    dzdh  
       136 天前
    @wy315700

    op 更新了。

    他要求的是 cdn 节点也得是美国哦。 那还是 dns 的问题。。。
    main1234
        19
    main1234  
       136 天前
    在 cdn 上面写个 lambda ,在 lambda 里面写你要的逻辑
    wy315700
        20
    wy315700  
       136 天前
    @dzdh
    那就不懂了,如果源站内容一样,为啥要区分。。。

    伪需求吧。
    leonshaw
        21
    leonshaw  
       136 天前
    源站内容都一样,约等于你自己就是 CDN ,然后外面再套一层。就按上面说的 Geo DNS ,用户就近接入 CDN 节点,节点就近回源。
    poembre
        22
    poembre  
       136 天前
    有些网站是 主站域名 直接配置 301 跳转到 其他各个城市 子域名。 每个城市 1 个节点 。 比如 58.com
    ccde8259
        23
    ccde8259  
       136 天前
    这种情况应该用 Anycast
    qingzhijiusheng
        24
    qingzhijiusheng  
       136 天前
    dns 不同地域解析,举例子,国内和国外,国内走国内源,国外走 cf 。
    然后你在分别加上 cdn 就行
    hefish
        25
    hefish  
       136 天前
    可以用多个 cdn ,for us 一个,for eu 一个,for cn 一个。。。
    然后用 dns 分流。
    ipwx
        26
    ipwx  
       136 天前
    这不会是该死的野生面试题吧。。

    问题怪怪的。
    Diego01
        27
    Diego01  
       136 天前
    CDN ,条件源站加规则就可以吧
    qsnow6
        28
    qsnow6  
       136 天前
    如果是静态内容的话,用预热接口把更新的内容推到 CDN 的节点上就行了,就不需要回源了。
    QlanQ
        29
    QlanQ  
       135 天前
    需求是啥?这样做的目的是啥?
    liuliancao
        30
    liuliancao  
       135 天前
    地域 dns 每个指向 CNAME 各自的 cdn 域名 可以不
    BeijingBaby
        31
    BeijingBaby  
       135 天前
    话说大厂 cdn 都支持规则回源,起到加速回源作用。。没问题啊?怎么会是问题??

    BeijingBaby
        32
    BeijingBaby  
       135 天前
    azhangbing
        33
    azhangbing  
       135 天前
    从 DNS 入手 HTTPDNS 移动解析可以定义规则好像
    ThirdFlame
        34
    ThirdFlame  
       135 天前
    比如阿里的 dcdn 支持回源写域名的。 那么上智能解析,就会让 dcdn 服务器回源时就根据解析结果回源到不同的服务器的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2599 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 06:54 · PVG 14:54 · LAX 22:54 · JFK 01:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.