HAproxy+Keepalived(双主)

Posted allin2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HAproxy+Keepalived(双主)相关的知识,希望对你有一定的参考价值。

HAproxy+Keepalived(双主)配置

  • 网络拓扑如下
    技术分享图片
  • 准备RealServer(RS服务器)配置
    这里RS上准备http服务作为应用验证,在实际生产中两台RS服务器应该具有相同资源实现冗余。这里为了测试验证,故意将被访问资源设置成不同,以方便验证。
  1. 两台RS服务器上执行yum install httpd -y安装httpd应用程序(两台都要执行,前提是系统已配置yum仓库)
  2. 准备不同访问资源 以便验证调度效果
    技术分享图片
    技术分享图片
    从客户端直接访问RS http服务资源,以确保RS 正常提供服务。
    技术分享图片
  • 准备HAproxy调度服务
  1. 在两台Dirctor服务器上执行安装haproxy包和keepalived包
    技术分享图片
  2. 修改haproxy配置文件,两台haproxy配置文件相同
    [[email protected] 05:51:23 ~]#cd /etc/haproxy/
    [[email protected] 05:51:29 haproxy]#vim haproxy.cfg
    global
    log 127.0.0.1 local2
    chroot /var/lib/haproxy
    pidfile /var/run/haproxy.pid
    maxconn 4000
    user haproxy
    group haproxy
    daemon
    stats socket /var/lib/haproxy/stats
    defaults
    mode http
    log global
    option httplog
    option dontlognull
    option http-server-close
    option forwardfor except 127.0.0.0/8
    option redispatch
    retries 3
    timeout http-request 10s
    timeout queue 1m
    timeout connect 10s
    timeout client 1m
    timeout server 1m
    timeout http-keep-alive 10s
    timeout check 10s
    maxconn 3000
    listen stats
    mode http
    bind 0.0.0.0:1080
    stats enable
    stats hide-version
    stats uri /haproxyadmin?stats
    stats realm Haproxy Statistics
    stats admin if TRUE
    frontend websrv
    option forwardfor
    bind *:80
    default_backend app
    frontend healthcheck
    bind :1099
    mode http
    option forwardfor
    default_backend app
    backend app
    balance roundrobin
    server app1 192.168.30.23:80 check weight 1
    server app2 192.168.30.24:80 check weight 2
  3. 修改rsyslog配置文件 使haproxy生成日志
    修改以下行其它rsyslog配置不变
    [[email protected] 06:00:08 haproxy]#vim /etc/rsyslog.conf
    # Provides UDP syslog reception
    $ModLoad imudp
    $UDPServerRun 514 ################启动udp端口 作为服务器工作
    # Provides TCP syslog reception
    $ModLoad imtcp
    $InputTCPServerRun 514 #############启动tcp监听端口
    local2.* /var/log/haproxy.log
  4. 启动haproxy服务,访问Dirctor IP确保haproxy调度正常
    在两台Director上开启haproxy服务并查看状态
    技术分享图片
    技术分享图片
    通过客户端访问验证
    技术分享图片
    技术分享图片
    至此,双haproxy+http配置完成,接下来就要在Director上加上keepalived保证haproxy互为主备

  • 配置keepalived双主服务
    在Director1上直接配置keepalived.conf文件
    技术分享图片
    在Director2上配置需要修改以下地方:
    技术分享图片
    启动keepalived服务,并验证
    a. 在两台Director上启动keepalived
    技术分享图片
    技术分享图片
    b. 从客户端访问两个VIP,192.168.30.100和192.168.30.200验证调度效果
    技术分享图片
    c. 关闭RS1服务,看是否调度到RS2
    技术分享图片
    类似的,也可以关闭RS2看是否调度到RS1上,这里就不做贴图。
    d. 关闭Director2看VIP 192.168.30.200是否切换到Director1,并且服务访问正常
    客户端效果:
    技术分享图片
    Director1效果:
    技术分享图片
    Director2上以及没有192.168.30.200 VIP:
    技术分享图片

至此,haproxy+keepalived双主配置完成





































































































以上是关于HAproxy+Keepalived(双主)的主要内容,如果未能解决你的问题,请参考以下文章

keepalived(双主模式)+haproxy+mysql_slave

haproxy+keepalived主备与双主模式配置

keepalived(双主模式)+haproxy+mysql_slave

MySQL日常运维之 MySQL双主复制+keepalived+haproxy配置(负载均衡)

keepalived+haproxy(双主)+nginx(静态)+lamp(动态)部署phpBB

MySQL集群搭建-双主+keepalived高可用