设为首页 收藏本站
查看: 1918|回复: 0

[经验分享] 实现基于Haproxy_NAT+Keepalived负载均衡高可用架构

[复制链接]

尚未签到

发表于 2017-11-13 14:35:47 | 显示全部楼层 |阅读模式
                                                             600bda6081aefa610942027b55551a4e.png
实验思路:
1.做这个实验首先可以想象一个场景,用户访问webserver的时候首先会经过调度器,首先需要明白的一点就是一般公司一般是在内网,客户端是通过外网访问webserver的。
2.haproxy是一个负载均衡器,Keepalived通过VRRP功能能再结合LVS负载均衡软件即可部署一个高性能的负载均衡集群系统,也就是说haproxy是解决后端realserver负载均衡的问题,keepalived是解决调度器的高可用的问题。
3.haproxy检测到后端服务器处于不健康的状态的时候会把后端realserver给剔除,通过权重的大小把客户端的访问调度到不同的realserver上;通过keepalived实现地址的漂移,当主调度器出现状况,就会把后端的realserver服务转移到另外一台调度器上。
4.需要特别注意的就是,haproxy可以自己寻找网关,不需要路由转发的功能。会把客户端的请求当做自己的请求拿到资源然后再返回给客户端,充当了代理的功能,也就是说并不需要dip,如果是一台调度器,可以自己的外网卡充当vip,因为这个时候不需要实现调度,不需要地址的漂移功能,如果是多台调度器需要配置vip实现地址的漂移,这个时候主坏掉,才能实现webserver所指向 的调度器变成从,从而实现webserver的访问(意思就是单台调度器vip可要可不要)。
实验准备:
两台centos7准备realserver,两台centos6准备用于做haproxy主从架构,防火墙关闭、各节点时钟服务同步、各节点之间可以通过主机名互相通信。realserver还是小米电子网站。
实验步骤:
第一步:配置keepalived,配置虚拟ip。
主机1.vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 30
    priority 98
    advert_int 1
# nopreempt
    authentication {
        auth_type PASS
        auth_pass magedu
    }
    virtual_ipaddress {
        172.17.120.120
}
notify_backup "/etc/keepalived/notify.sh backup"
notify_master "/etc/keepalived/notify.sh master"
notify_fault "/etc/keepalived/notify.sh fault"
}
主机2.vrrp_instance VI_1 {
    state MASTER
    interface eth1
    virtual_router_id 30
    priority 100
    advert_int 1
#nopreempt
   authentication {
        auth_type PASS
        auth_pass magedu
    }
    virtual_ipaddress {
        172.17.120.120
}
notify_backup "/etc/keepalived/notify.sh backup"
notify_master "/etc/keepalived/notify.sh master"
notify_fault "/etc/keepalived/notify.sh fault"
}
第二步:配置haproxy,连接realserver。
1.全局配置
log      127.0.0.1 local2  --日志配置,配合rsyslog使用,在rsyslog中定义完成后要记得重启rsyslog服务。Centos6自己创建定义的日志文件目录。
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
2.haproxy状态检测页面
listen stats
mode http
bind 0.0.0.0:1080
stats  enable
stats uri  /haproxyadmin
stats  auth  admin:admin
stats  admin  if TRUE
3.客户端限制配置
frontend   web
bind        :80
default_backend    lnmp-server
4.realserver端配置
backend  lnmp-server
        balance         roundrobin
        option          httpchk  GET   /index.html ---这个健康检测页面配置了就要有,没有就会认为realserver有误。
        server          lnmpserver1   172.17.252.78:80 check inter 3000 rise 3 fall 5
        server          lnmpserver2   172.17.110.110:80 check inter 3000 rise 3 fall 5
完整配置:
6bcec0106b984b8cd3df29ffb17dc38a.png
5.复制一份给另外一台haproxy,保证配置是一样的。   
第三步:测试界面
1.backup宕机
2aca3276f79340c9e7d307916d3a0978.png
2.master宕机




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-407030-1-1.html 上篇帖子: 实现基于Haproxy+Keepalived负载均衡高可用架构 下篇帖子: 用haproxy结合keepalived实现基于LNMP的负载均衡和高可用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表