多个 Nginx 组集群保证高可用的最佳实践? N>5 - V2EX
v2orz
V2EX    NGINX

多个 Nginx 组集群保证高可用的最佳实践? N>5

  •  
  •   v2orz Sep 4, 2017 5366 views
    This topic created in 3188 days ago, the information mentioned may be changed or developed.

    如题,网上找到的都是用 keepalived 做主备,资源利用率未免太低了点?

    就算做成双主模式,一方面需要预留更多资源,另一方面,多数机器怎么配置?

    这方面经验很少,希望各路大神多多指教

    16 replies    2017-09-06 11:11:36 +08:00
    misaka19000
        1
    misaka19000  
       Sep 4, 2017 via Android   1
    在前面架个 HAproxy,给 HAproxy 做主备就行了
    azh7138m
        2
    azh7138m  
       Sep 4, 2017 via Android   1
    haproxy+tproxy 还可以做透传
    v2orz
        3
    v2orz  
    OP
       Sep 4, 2017
    @misaka19000 #1
    我一直以为 Nginx 和 HA 起的作用差不多的呢。


    那如果一个主 HA 已经支撑不了流量了怎么办?
    234747005
        4
    234747005  
       Sep 4, 2017   2
    域名的 DNS 上面做 A 记录,根据地区或者线路分流到不同的 nginx ip。nginx 做 upstream 到后端的 nginx。
    sumuu
        5
    sumuu  
       Sep 4, 2017   1
    @v2orz

    还有 DNS 可以做负载均衡的.一般的域名解析商都支持的.

    以前的公司的服务器架构这块,没用 HA 这样的配置,直接用 Nginx 自带的 keepalive 去做的.

    整体的服务器架构是: LNAMP(Linux, Nginx, Apache, PHP),分三个集群,美东,美西和欧洲.

    首先是通过 AWS 的 Route53(Geo DNS 和加权轮询)

    然后再到每个集群的前端机(nginx),这里用的是 IP Hash

    最后到 Apache + PHP CGI(当时的 PHP 版本是 5.27 和 5.3)


    现在是全部在 AWS 上面,通过 ELB 来做这块的,简单高效.
    nullcc
        6
    nullcc  
       Sep 4, 2017   1
    DNS 轮询 + LVS + nginx(keepalived 主备)
    v2orz
        7
    v2orz  
    OP
       Sep 4, 2017
    @sumuu #5
    好详细, 基本上明白整体情况了,非常感谢解惑
    HarrisonZ
        8
    HarrisonZ  
       Sep 4, 2017   1
    keepalived 前面跑一层 ospf 做等价路由,这样每台 keepalived 就都可以工作起来了,所有的 keepalived 都是 master,全部监听 vip,关掉广播,关掉迁移,ospf 邻居保证 keepalived 的高可用
    HarrisonZ
        9
    HarrisonZ  
       Sep 4, 2017
    @HarrisonZ 5 楼说的 DNS 负载均衡也是必须而且优先做的,等价路由是为了解决转发器性能扩展的问题,都是在超大规模的情况下才会这么折腾
    HarrisonZ
        10
    HarrisonZ  
       Sep 4, 2017
    再多说一句,keepalived 不是做负载均衡转发的,他只是配置 lvs 以及实现 lvs 的 ha,转发实际是 lvs 在做
    likuku
        11
    likuku  
       Sep 4, 2017
    软件的东西还不行的话,那就买硬件设备吧... ctrix 的 netscaler,F5 公司的某些产品,它们都支持多机 keep alive。
    likuku
        12
    likuku  
       Sep 4, 2017   1
    DNS 轮训,后段公网 ip 的服务器组出问题时,想要迁移故障就很难了... DNS 记录的 TTL 扩散到全网,有的受的。
    swulling
        13
    swulling  
       Sep 4, 2017 via iPhone
    DNS 的更新时间有时会长达两三天,敢用的人也是大胆
    swulling
        14
    swulling  
       Sep 4, 2017 via iPhone
    接入层 keepalived + lvs 或 haproxy
    后端 nginx

    一般来说接入层很难形成瓶颈,大流量的部分都走 cdn 了
    234747005
        15
    234747005  
       Sep 6, 2017
    @swulling 购买 dns 接管商的收费服务,譬如说 dnspod 可以把 TTL 缩短到 10
    swulling
        16
    swulling  
       Sep 6, 2017
    @234747005 这个不可靠的,因为你完全无法控制各个运营商的行为,很多运营商根本不管上游 DNS 的 TTL
    About     Help     Advertise     Blog     API     FAQ     Solana     1727 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 49ms UTC 16:17 PVG 00:17 LAX 09:17 JFK 12: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