讨论:如何利用DNS有效降低网站宕机带来的损失? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
onlytiancai
V2EX    DNS

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

  •  
  •   onlytiancai 2013 年 10 月 17 日 5724 次点击
    这是一个创建于 4468 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家好,和大家讨论一个问题。

    一个网站可以从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  
    PRO
       2013 年 10 月 17 日
    这个是DNSPOD在监控着你的服务器.然后如果你的服务器宕机了,就返回你设置的备用IP.
    受到DNSPOD的速度限制,也受到比如说DNS缓存时间的影响.

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

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

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

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

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

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

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

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

    http://blog.dnspod.cn/2013/10/ruheliyongdnsyouxiaojiangdiwangzhandangjidailaidesunshi/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2665 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 03:19 PVG 11:19 LAX 19:19 JFK 22:19
    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