V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
onlytiancai
V2EX  ›  DNS

讨论:如何利用DNS有效降低网站宕机带来的损失?

  •  
  •   onlytiancai · 2013-10-17 13:58:04 +08:00 · 5171 次点击
    这是一个创建于 4087 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家好,和大家讨论一个问题。

    一个网站可以从DNS上设置多个IP,基本上有两个目的

    1. Round-robin DNS,用DNS轮询实现负载均衡。
    1. 多运营商的智能解析,联通用户访问联通IP,电信用户访问电信IP。

    一些复杂的网站会混合使用两种方式,我想问的是当其中一个IP宕机后,
    可以从DNS的层面做哪些措施来减少损失,防止用户访问到宕机的服务器上。

    DNSPod的D监控功能提供了宕机自动切换功能,大家给看下科学吗?
    https://support.dnspod.cn/Kb/showarticle/tsid/179
    17 条回复    1970-01-01 08:00:00 +08:00
    qiuai
        1
    qiuai  
       2013-10-17 14:16:02 +08:00
    这个是DNSPOD在监控着你的服务器.然后如果你的服务器宕机了,就返回你设置的备用IP.
    受到DNSPOD的速度限制,也受到比如说DNS缓存时间的影响.

    不过目前好像也只有这种宕机切换比较简单省事易部署吧.
    onlytiancai
        2
    onlytiancai  
    OP
       2013-10-17 14:25:14 +08:00
    @qiuai
    DNSPod提供了多种宕机后切换的规则,你说的这种明确指定备用IP的是其中一种方式。

    DNSPod速度限制,这个你是指监控的频率和准确度吧,这个可以定制,你可以设置每1分钟检测一下你的网站。

    DNS缓存影响这个,就看你TTL的大小了,DNSPod会在你启用监控时自动给你把TTL设置为10秒。

    也就是说你的网站如果宕机了,会在1分钟内被发现,并进行域名记录修改,然后再过10秒就对全国各地生效了,加上其它服务器间通信和运算的时间,也就是2分钟左右。

    其实抛开DNSPod,如果你是一个管理了很多服务器的运维人员,在某IP宕机后是怎么考虑的呢?我想听听大家的经验。
    Admstor
        3
    Admstor  
       2013-10-17 14:48:50 +08:00
    上HA呗...
    onlytiancai
        4
    onlytiancai  
    OP
       2013-10-17 14:55:05 +08:00
    @Admstor 啥HA,是说软件,还是架构,还是一个解决方案?

    你是说高可用性吗? 如果有多个IP的话,某IP宕了,直接停止解析这个IP,用户就不会访问这个IP了,反正还有别的IP可以顶着,这样行吗?
    ipconfiger
        5
    ipconfiger  
       2013-10-17 14:59:13 +08:00
    yeah,这里也遇到蛙蛙了,上次我们遇到新网把根解析从DNSpod改跑了,结果网站连续3天都不正常的情况,DNSPod有办法能破不?
    @onlytiancai
    onlytiancai
        6
    onlytiancai  
    OP
       2013-10-17 15:28:26 +08:00
    @ipconfiger 这个肯定不能,因为你在新网注册的,所以NS修改得在他那里修改,有点儿歪楼呀。
    ipconfiger
        7
    ipconfiger  
       2013-10-17 15:44:34 +08:00
    @onlytiancai 能提供报警不?
    liuyao729
        8
    liuyao729  
       2013-10-17 17:24:00 +08:00
    @ipconfiger 可以 短信提示
    daiv
        9
    daiv  
       2013-10-17 17:30:06 +08:00 via iPhone
    Cloudflare 可以吗?
    qiayue
        10
    qiayue  
       2013-10-17 17:31:33 +08:00
    @ipconfiger 我昨天刚刚遇到同样的问题,还好半个小时之内解决了
    pubby
        11
    pubby  
       2013-10-17 17:37:28 +08:00
    网站宕机主要还得靠增加机器做HA来解决

    我们是在运营商线路出问题的时候不得不临时切换DNS。比如联通线路挂了,那切换DNS,临时指向电信服务器。
    046569
        12
    046569  
       2013-10-17 17:46:03 +08:00
    有些运营商比如移动的手机网络,DNS缓存时间很长.DNSPod的方案就不起作用了.
    歪个楼,如果不局限于DNS的话,可以考虑在反代上启用健康检测模块,比如ngx_http_upstream_check_module,当后端服务器跪了会自动切掉的.
    shizzmk
        13
    shizzmk  
       2013-10-18 08:54:21 +08:00
    国内dNS很不靠谱  估计被奸商宰割版了
    Admstor
        14
    Admstor  
       2013-10-18 10:21:06 +08:00
    @onlytiancai HA一般解析的IP是HA结构里的虚拟IP,服务器组里是用内网IP就行了,这个虚拟IP是通过HA服务器将流量引入内部服务器组
    onlytiancai
        15
    onlytiancai  
    OP
       2013-10-18 14:09:43 +08:00
    @ipconfiger
    @liuyao729
    @qiayue

    关于NS被改的问题,自己随便写个脚本dig自己域名的NS,发现变化后给自己发个邮件,然后用crontab跑起来就行了。

    @pubby
    @Admstor

    你们说的HA就是说F5,alton, HAProxy之类的软硬件负载均衡吧,这个成本很高,而且一般都是同机房部署,和DNS轮询是不同层面的高可用方案,用DNS轮询和自动切换的话,成本最低,最容易实施,而且多个机房也能直接支持,缺点可能就是各地运营商的DNS可能会受TTL缓存的影响而生效慢一些。

    @046569
    你提到的方案不错,但需要站长和运维比较高端一些,可以结合DNS自动切换一起使用。
    onlytiancai
        16
    onlytiancai  
    OP
       2013-10-19 18:17:00 +08:00
    @liuyao729
    @qiayue

    写了一个防止NS被意外篡改的监控脚本,大家看看能不能用上。
    https://github.com/onlytiancai/codesnip/blob/master/python/ns_checker.py
    onlytiancai
        17
    onlytiancai  
    OP
       2013-10-21 15:14:34 +08:00
    关于这个问题,我整理了一下我的想法,贴到DNSPod博客了,大家给提提意见?

    http://blog.dnspod.cn/2013/10/ruheliyongdnsyouxiaojiangdiwangzhandangjidailaidesunshi/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1840 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:26 · PVG 00:26 · LAX 08:26 · JFK 11:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.