HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

发布时间:2020-04-20 16:42:14 作者:三月
来源:亿速云 阅读:293

下文给大家带来HAproxy+Keepalived负载均衡-高可用web站详细流程介绍,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用亿速云在行业内累计的经验做一个解答。

haproxy+keepalived负载均衡高可用web站

 

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

 

OS

IP

子网掩码

路由网关

Centos6.6

HAproxy

Keepalived

Eth0:192.168.26.210

255.255.252.0

192.168.25.3

VIP:192.168.27.210



Centos6.6

HAporxy

Keepalived

Eth0:192.168.26.211

255.255.252.0

192.168.25.3

VIP:192.168.27.210



Centos6.6(WEB)

Eth0:192.168.26.212

255.255.252.0

192.168.25.3

Centos6.6(WEB)

Eth0:192.168.26.218

255.255.252.0

192.168.25.3

 

 

1、安装Apache服务192.168.26.212和192.168.26.218:(yum install httpd –y)略启动

启动Apache,分别在两台云服务器上创建WEB页并确保网络能正常访问:

  

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

 

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

 

2、安装HAproxy:192.168.26.210和192.168.26.211:

Yum install –y haproxy

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

 

编辑配置文件:vim /etc/haproxy/haproxy.cfg

#---------------------------------------------------------------------

# Example configuration for a possible web application.  See the

# full configuration options online.

#

#   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt

#

#---------------------------------------------------------------------

 

#---------------------------------------------------------------------

# Global settings

#---------------------------------------------------------------------

global

    # to have these messages end up in /var/log/haproxy.log you will

    # need to:

    #

    # 1) configure syslog to accept network log events.  This is done

    #    by adding the '-r' option to the SYSLOGD_OPTIONS in

    #    /etc/sysconfig/syslog

    #

    # 2) configure local2 events to go to the /var/log/haproxy.log

    #   file. A line like the following can be added to

    #   /etc/sysconfig/syslog

    #

    #    local2.*                       /var/log/haproxy.log

    #

    log         127.0.0.1 local2

 

    chroot      /var/lib/haproxy

    pidfile     /var/run/haproxy.pid

    maxconn     4000

    user        haproxy

    group       haproxy

    daemon

 

    # turn on stats unix socket

    stats socket /var/lib/haproxy/stats

 

#---------------------------------------------------------------------

# common defaults that all the 'listen' and 'backend' sections will

# use if not designated in their block

#---------------------------------------------------------------------

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

 

#---------------------------------------------------------------------

# main frontend which proxys to the backends

#---------------------------------------------------------------------

#frontend  main *:5000

#    acl url_static       path_beg       -i /static /p_w_picpaths /javascript /stylesheets

#    acl url_static       path_end       -i .jpg .gif .png .css .js

#

#    use_backend static          if url_static

#    default_backend             app

#

##---------------------------------------------------------------------

## static backend for serving up p_w_picpaths, stylesheets and such

##---------------------------------------------------------------------

#backend static

#    balance     roundrobin

#    server      static 127.0.0.1:4331 check

frontend websrv *:80

   default_backend webservers

backend webservers

     balance  roundrobin

     server node3 192.168.26.212:80 check

     server node4 192.168.26.218:80 check

listen statick

     bind *:1024

     stats enable

     stats uri /haadmin?stats

     stats auth admin:admin

     stats hide-version

     stats admin if TRUE

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

192.168.26.211上配置文件也一样:因此我们直接SCP过去。

scp -p haproxy.cfg node2:/etc/haproxy/

 

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

启动两台服务器上的HAproxy服务。

 

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

 

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

安装keepalived:192.168.26.210和192.168.26.211

首先192.168.26.210配置:

Yum install –y keepalived

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

 

 

编辑配置文件:vim /etc/keepalived/keepalived.conf

 

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

配置文件:

! Configuration File for keepalived

 

global_defs {

   notification_email {

     acassen@firewall.loc

     failover@firewall.loc

     sysadmin@firewall.loc

   }

   notification_email_from jwenshan@163.com

   smtp_server 192.168.200.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

vrrp_script chk_haproxy {

    script "/etc/keepalived/chk.sh"                      //检查haproxy的脚本

    interval 2                                           //每两秒检查一次

}

 

vrrp_instance VI_1 {

    state BACKUP                                        //定义为BACKUP节点

    nopreempt                                           //开启不抢占

    interface eth0

    virtual_router_id 51

    priority 100                                        //开启了不抢占,所以此处优先级必须高于另一台

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass jerry

    }

    virtual_ipaddress {

        192.168.27.210                                 //配置VIP

    }

    track_script {

        chk_haproxy                                    //调用检查脚本

    }

 

    notify_backup "/etc/init.d/haproxy restart"

    notify_fault "/etc/init.d/haproxy stop"

}

 

创建脚本文件:主要用于检测haproxy状态。

Vim /etc/keepalived/Chk.sh

#!/bin/bash

#

if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then

       /etc/init.d/keepalived stop

Fi

 

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

 

启动Keepalived服务:

 

service keepalived start

 

 

 

192.168.26.211配置:

Yum install –y keepalived

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

编辑配置文件:Vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

 

global_defs {

   notification_email {

     acassen@firewall.loc

     failover@firewall.loc

     sysadmin@firewall.loc

   }

   notification_email_from jwenshan@163.com

   smtp_server 192.168.200.1

   smtp_connect_timeout 30

   router_id LVS_DEVEL

}

vrrp_script chk_haproxy {

    script "/etc/keepalived/chk.sh"                    

    interval 2                                      

}

 

vrrp_instance VI_1 {

    state BACKUP                                   

    nopreempt                                     

    interface eth0

    virtual_router_id 51

    priority 99                                 

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass jerry

    }

    virtual_ipaddress {

        192.168.27.210                                

    }

    track_script {

        chk_haproxy                                   

    }

 

    notify_backup "/etc/init.d/haproxy restart"

    notify_fault "/etc/init.d/haproxy stop"

}

 

脚本文件:vim /etc/keepalived/chk.sh

#!/bin/bash

#

if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then

       /etc/init.d/keepalived stop

Fi

 

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

启动Keepalived服务

Service keepalived start

 

测试VIP网络是否通畅:ping 192.168.27.210 –t

 

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

 

访问VIP网络:

 

Http://192.168.27.210

不断刷新浏览器观察显示结果

 

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

测试通过VIP访问后台监控页面:

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

访问成功。

 

测试高可用:

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

停掉192.168.26.210上Keepalived 观察结果:

Service keepalived stop

 

首先VIP网络出现波动:

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

再次访问VIP成功:

 

 

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

 

 

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

 

VIP已经转移动192.168.26.211上:

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

 

恢复192.168.26.210keepalived观察

:vip没有自动转移回192.168.26.210 这和我们的设置参数有关。

 

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

HAproxy+Keepalived负载均衡-高可用web站详细流程介绍

 

本试验keepalived配置中涉及几个重要参数,nopreempt  state MASTER/ state BACKUP  priority 可以更改其设置观察其变化,适应不同场景中的应用。

 

看了以上关于HAproxy+Keepalived负载均衡-高可用web站详细流程介绍,如果大家还有什么地方需要了解的可以在亿速云行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,亿速云技术工程师在行业内拥有十几年的经验了。

 

 


推荐阅读:
  1. MHA高可用群集详细介绍
  2. LVS负载均衡群集实战详细介绍

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

负载均衡 keepalived haproxy

上一篇:NGINX负载均衡设置与反向代理设置

下一篇:关于负载均衡那点事儿的一些浅见

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》