如题,网上找到的都是用 keepalived 做主备,资源利用率未免太低了点?
就算做成双主模式,一方面需要预留更多资源,另一方面,多数机器怎么配置?
这方面经验很少,希望各路大神多多指教
1
misaka19000 2017-09-04 11:55:27 +08:00 via Android 1
在前面架个 HAproxy,给 HAproxy 做主备就行了
|
2
azh7138m 2017-09-04 11:57:27 +08:00 via Android 1
haproxy+tproxy 还可以做透传
|
3
v2orz OP |
4
234747005 2017-09-04 16:07:53 +08:00 2
域名的 DNS 上面做 A 记录,根据地区或者线路分流到不同的 nginx ip。nginx 做 upstream 到后端的 nginx。
|
5
sumuu 2017-09-04 16:13:28 +08:00 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 来做这块的,简单高效. |
6
nullcc 2017-09-04 16:37:14 +08:00 1
DNS 轮询 + LVS + nginx(keepalived 主备)
|
8
HarrisonZ 2017-09-04 18:14:08 +08:00 1
keepalived 前面跑一层 ospf 做等价路由,这样每台 keepalived 就都可以工作起来了,所有的 keepalived 都是 master,全部监听 vip,关掉广播,关掉迁移,ospf 邻居保证 keepalived 的高可用
|
9
HarrisonZ 2017-09-04 18:16:37 +08:00
@HarrisonZ 5 楼说的 DNS 负载均衡也是必须而且优先做的,等价路由是为了解决转发器性能扩展的问题,都是在超大规模的情况下才会这么折腾
|
10
HarrisonZ 2017-09-04 18:18:09 +08:00
再多说一句,keepalived 不是做负载均衡转发的,他只是配置 lvs 以及实现 lvs 的 ha,转发实际是 lvs 在做
|
11
likuku 2017-09-04 22:15:41 +08:00
软件的东西还不行的话,那就买硬件设备吧... ctrix 的 netscaler,F5 公司的某些产品,它们都支持多机 keep alive。
|
12
likuku 2017-09-04 22:17:34 +08:00 1
DNS 轮训,后段公网 ip 的服务器组出问题时,想要迁移故障就很难了... DNS 记录的 TTL 扩散到全网,有的受的。
|
13
swulling 2017-09-04 23:31:33 +08:00 via iPhone
DNS 的更新时间有时会长达两三天,敢用的人也是大胆
|
14
swulling 2017-09-04 23:39:28 +08:00 via iPhone
接入层 keepalived + lvs 或 haproxy
后端 nginx 一般来说接入层很难形成瓶颈,大流量的部分都走 cdn 了 |