V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
poropro
V2EX  ›  问与答

国内 国际网站 服务器如何实现各地区加载

  •  
  •   poropro · 2016-09-11 10:05:37 +08:00 via Android · 3163 次点击
    这是一个创建于 3004 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如华为官网
    www.huawei.com/cn 国内用户访问
    www.huawei.com/us 美国用户
    www.huawei.com/hk 香港用户

    如何让美国服务器加载 us ,香港加载 hk 国内加载 cn

    因为 a 记录只能绑定一个 ip
    18 条回复    2016-09-11 18:53:10 +08:00
    auser
        1
    auser  
       2016-09-11 10:10:18 +08:00
    因为 a 记录只能绑定一个 ip
    auser
        2
    auser  
       2016-09-11 10:10:38 +08:00
    这句话错了
    jasontse
        3
    jasontse  
       2016-09-11 10:19:20 +08:00 via iPad
    geoip + 302 重定向
    icybee
        4
    icybee  
       2016-09-11 10:55:48 +08:00
    直接判断 ip 来源感觉没什么问题
    9hills
        5
    9hills  
       2016-09-11 10:57:09 +08:00 via iPhone
    解决办法太多了,最简单的是根据来源 IP 跳转
    czb
        6
    czb  
       2016-09-11 11:06:49 +08:00 via Android
    A 记录可以通过 Geo IP 来分发
    Livid
        7
    Livid  
    MOD
       2016-09-11 11:09:29 +08:00
    这个问题如果用 CDN 解决的话(大公司肯定都是用 CDN 的),是一个很多层一起构成的解决方案:

    1. DNS 和 Anycast 层面实现让用户到达离他最近的服务器
    2. 不同的目录可以去不同的源站获取,这样的话,美国的目录可以从美国的源站获得,德国的目录可以从德国的源站获得
    poropro
        8
    poropro  
    OP
       2016-09-11 13:14:49 +08:00 via Android
    @Livid 域名如何解析
    poropro
        9
    poropro  
    OP
       2016-09-11 13:15:02 +08:00 via Android
    @auser 怎么错了
    poropro
        10
    poropro  
    OP
       2016-09-11 13:15:29 +08:00 via Android
    @9hills 域名只能绑定一个 ip
    9hills
        11
    9hills  
       2016-09-11 13:25:25 +08:00
    @poropro 不冲突, IP 并不代表背后的服务器只有一台,也不代表背后的服务器只在一个地域
    9hills
        12
    9hills  
       2016-09-11 13:35:39 +08:00
    上面说方法很多,包括 livid 的方法也是其中之一。还是具体实例具体分析吧, huawei 是怎么做的可以给你简单分析下


    华为的 www.huawei.com 并不是 A 记录,而是一个 CNAME (不同的地域解析出来的可能不同)
    www.huawei.com. 600 IN CNAME www.huawei.com.akadns.net.
    www.huawei.com.akadns.net. 300 IN CNAME www.huawei.com.lxdns.com.
    www.huawei.com.lxdns.com. 600 IN CNAME huawei.dtwscache.ourwebcdn.com.
    huawei.dtwscache.ourwebcdn.com. 60 IN A 111.13.135.182

    当然一般网站一层就够了,华为套了好多层。。这层 CNAME 链是保证不同地域的用户可以解析到临近的 IP 地址( CDN 服务商提供的临近解析)

    以我为例,解析到了 111.13.135.182 ,然后一个简单的 302 跳转(用 chrome 可以看到),到 www.huawei.com/cn/
    shiji
        13
    shiji  
       2016-09-11 13:36:41 +08:00 via Android
    @poropro 高级点的 nameserver 都支持按照地域解析。 再一个一个域名可以绑定很多 IP 呀
    BOOM
        14
    BOOM  
       2016-09-11 13:40:23 +08:00
    我去看了看苹果的。之前一直以为分国家 ip 。
    然后发现,好像是根据 ip 来分配服务器,然后只是语言不同。。。
    比如中国访问 apple.com/uk 依然是访问中国的服务器,只是是英文。
    msg7086
        15
    msg7086  
       2016-09-11 14:33:56 +08:00
    一个域名并非只能绑一个 IP (或者说并非只能绑一个 a 记录)。
    一个 IP 并非只能指向一台服务器。
    所以首先你要搞懂这些你不清楚的东西。
    yhxx
        16
    yhxx  
       2016-09-11 14:44:58 +08:00
    判断 IP 然后 302 一下?
    techmoe
        17
    techmoe  
       2016-09-11 15:02:28 +08:00 via Android
    那就检测来路 IP 然后跳呗
    不过这种通过 URI 分服务器的我还真没太见过
    难道是说他们有一个主机子然后分别把那三个路径反代过去?这样归根结底不还得先把请求甩到一台机器上
    kawaiiushio
        18
    kawaiiushio  
       2016-09-11 18:53:10 +08:00 via iPhone
    cname
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3808 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 04:17 · PVG 12:17 · LAX 20:17 · JFK 23:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.