`

haproxy+keepalived安装配置说明

 
阅读更多

安装Keepalived

 yum install -y wget make gcc openssl-devel popt-devel

wget http://www.keepalived.org/software/keepalived-1.2.15.tar.gz
tar zxvf keepalived-1.2.15.tar.gz
cd keepalived-1.2.15
./configure --prefix=/usr/local/keepalived
make
make install
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
mkdir -p /etc/keepalived/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf
chmod +x /etc/init.d/keepalived
vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived
global_defs {
   notification_email {
	admin@123.com
   }
   notification_email_from admin@123.com
   smtp_server mail.123.com
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}

vrrp_script chk_haproxy {
    script "/etc/keepalived/chk_haproxy.sh"
    interval 2
    weight 2
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 101
    advert_int 1
    mcast_src_ip 172.16.33.124

    authentication {
        auth_type PASS
        auth_pass 1111
    }

    track_script {
	chk_haproxy    #监测haproxy进程状态
    }
    virtual_ipaddress {
	172.16.33.123
    }
}
}

vi /etc/keepalived/chk_haproxy.sh
status=$(ps aux|grep haproxy | grep -v grep | grep -v bash | wc -l)
if [ "${status}" = "0" ]; then
    /etc/init.d/haproxy start

    status2=$(ps aux|grep haproxy | grep -v grep | grep -v bash |wc -l)

    if [ "${status2}" = "0"  ]; then
            /etc/init.d/keepalived stop
    fi
fi
 
service keepalived start
service keepalived stop

1、将Master上的keepalived停止

查看Master上的日志

tail -f /var/log/messages

Sep 23 01:24:34 181 Keepalived[3125]: Stopping Keepalived v1.2.8 (09/23,2013)
Sep 23 01:24:34 181 Keepalived_vrrp[3127]: VRRP_Instance(VI_1) sending 0 priority
Sep 23 01:24:34 181 Keepalived_vrrp[3127]: VRRP_Instance(VI_1) removing protocol VIPs.

发现Master释放了VIP

再查看Backup上的日志

Sep 23 01:20:26 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Transition to MASTER STATE
Sep 23 01:20:27 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Entering MASTER STATE
Sep 23 01:20:27 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) setting protocol VIPs.
Sep 23 01:20:27 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 10.10.3.180
Sep 23 01:20:27 182 Keepalived_healthcheckers[2886]: Netlink reflector reports IP 10.10.3.180 added

发现Backup绑定了VIP

2、将Master上的keepalived启动

查看Master上的日志

tail -f /var/log/messages

Sep 23 01:27:56 181 Keepalived_vrrp[3450]: VRRP_Instance(VI_1) Entering MASTER STATE
Sep 23 01:27:56 181 Keepalived_vrrp[3450]: VRRP_Instance(VI_1) setting protocol VIPs.
Sep 23 01:27:56 181 Keepalived_vrrp[3450]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth0 for 10.10.3.180
Sep 23 01:27:56 181 Keepalived_healthcheckers[3449]: Netlink reflector reports IP 10.10.3.180 added

发现Master绑定了VIP

再查看Backup上的日志

Sep 23 01:21:15 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Received higher prio advert
Sep 23 01:21:15 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) Entering BACKUP STATE
Sep 23 01:21:15 182 Keepalived_vrrp[2887]: VRRP_Instance(VI_1) removing protocol VIPs.
Sep 23 01:21:15 182 Keepalived_healthcheckers[2886]: Netlink reflector reports IP 10.10.3.180 removed

发现Backup释放了VIP

tcpdump vrrp 检查vrrp是否已正常工作,抓包会看到对应的ip
ip a
eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:74:b0:22 brd ff:ff:ff:ff:ff:ff
    inet 172.16.33.124/24 brd 172.16.33.255 scope global eth0
    inet 172.16.33.123/32 scope global eth0
    inet6 fe80::20c:29ff:fe74:b022/64 scope link 
       valid_lft forever preferred_lft forever


安装haproxy
#tar -xvzf haproxy-1.4.24.tar.gz
#cd haproxy-1.4.24
#make TARGET=linux26 ARCH=x86_64
#TARGET是指定内核版本,ARCH指定CPU架构,我使用的是64bit系统
#make install
 
#mkdir /etc/haproxy
#cp examples/haproxy.cfg /etc/haproxy
#cp examples/haproxy.init /etc/init.d/haproxy
#chmod +x /etc/init.d/haproxy
#ln -s /usr/local/sbin/haproxy /usr/sbin/
#mkdir /usr/share/haproxy
vi /etc/haproxy/haproxy.cfg
 
global
    log 127.0.0.1   local0  #日志输出配置,所有日志都记录在本机,通过local0输出
    log 127.0.0.1   local1 notice
    #log loghost    local0 info
    maxconn 4096                #最大连接数
    chroot /usr/share/haproxy   #改变当前工作目录。
    uid 99                  #所属用户的uid
    gid 99                  #所属运行的gid
    daemon                  #以后台形式运行haproxy
defaults
    log global
    mode    http
  #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
    option  httplog
    option  dontlognull
    option   redispatch
  #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
    option  abortonclose
  #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
    retries 3               #两次连接失败就认为是服务器不可用
    maxconn 2000            #默认的最大连接数
    contimeout  5000        #连接超时
    clitimeout  50000       #客户端超时
    srvtimeout  50000       #服务器超时
frontend www
 bind *:80
#这里建议使用bind *:80的方式,要不然做集群高可用的时候有问题,vip切换到其他机器就不能访问了。
 acl web hdr(host) -i www.test.com
 #acl后面是规则名称,-i是要访问的域名,如果访问www.test.com这个域名就分发到下面的webserver 的作用域。
 use_backend webserver if web
acl url_static       path_beg       -i /static /images /javascript /stylesheets
acl url_static       path_end       -i .jpg .gif .png .css .js
acl url_dynamic      path_end       -i .php
use_backend static          if url_static
use_backend dynamic          if url_dynamic
 
backend webserver             #webserver作用域
    mode http
    balance   roundrobin     
    #banlance roundrobin 轮询,balance source 保存session值,支持static-rr,leastconn,first,uri等参数
    option  httpchk /index.html
    #检测文件,如果分发到后台index.html访问不到就不再分发给它
    server     web01 172.16.33.126:80  inter 3000 rise 2 fall 3 check maxconn 5000
   server     web02 172.16.33.127:80  inter 3000 rise 2 fall 3 check maxconn 5000
#listen web
# bind 172.16.33.123:80
# mode http
# server web01 172.16.33.126:80 check inter 2000 rise 2 fall 5
# server web02 172.16.33.127:80 check inter 2000 rise 2 fall 5
 
listen  mysql
        bind 0.0.0.0:23306    #代理端口
        mode tcp              #模式 TCP
        option mysql-check user root   #mysql健康检查  root为mysql登录用户名
        balance round robin            #调度算法
        server mysql1 10.0.31.40:4306 weight 1 check  inter 1s rise 2 fall 2 #健康检查加上check
        server mysql2 10.0.31.41:4306 weight 1 check  inter 1s rise 2 fall 2
listen admin_stats
        bind *:8080              #监听端口
        mode http                       #http的7层模式
        option httplog                  #采用http日志格式
        log 127.0.0.1 local0 err
        maxconn 10
        stats refresh 30s               #统计页面自动刷新时间
        stats uri /stats                #统计页面url
        stats realm XingCloud\ Haproxy  #统计页面密码框上提示文本
        stats auth admin:admin          #统计页面用户名和密码设置
        stats hide-version              #隐藏统计页面上HAProxy的版本信息

分享到:
评论

相关推荐

    MyCat高可用负载均衡集群实现(HAProxy+Keepalived+MyCat)

    最后,部署Keepalived,配置VIP,确保在HAProxy节点发生故障时可以进行故障转移,以实现整个系统的高可用性。 在整个架构中,高可用性不仅仅体现在MyCat本身,还体现在负载均衡器HAProxy以及整个高可用集群的配置上...

    基于docker-compose实现haproxy+keepalived+teleport的负载均衡和高可用1

    主机名IP地址操作系统组件备注环境说明架构图目录结构配置文件docker-compose配置文件keepalived配置文件keepalived检测脚本hapr

    Role部署LNMP+HAproxy+keepalived高可用.docx

    例如,haproxy role负责安装和配置HAproxy负载均衡器,mysql role负责安装和配置Mysql数据库等。 三、HAproxy负载均衡 HAproxy是一种开源的负载均衡器,可以将流量分配到多个服务器上,以提高系统的可用性和性能。...

    HAProxy+Keepalived+MySQL.pdf

    编写这个脚本并在Keepalived配置中引用,以便在HAProxy异常时触发故障转移。 4. **测试**: 完成上述步骤后,启动HAProxy和Keepalived服务,进行测试以验证高可用性。可以通过模拟主服务器故障,观察是否能成功...

    Haproxy+keepalived配置文档

    在构建高可用性服务时,`Haproxy` 和 `Keepalived` 是两种非常重要的工具,它们在Linux环境中广泛用于实现负载均衡和故障切换。`Haproxy` 是一个高性能的TCP/HTTP负载均衡器,而`Keepalived` 提供了VRRP(Virtual ...

    keepalived+haproxy+mycat配置文件.rar

    在构建高可用性、负载均衡的数据库系统时,`keepalived`、`haproxy` 和 `mycat` 是三个关键组件。本配置文件集合主要用于实现基于 CentOS 7 的多节点环境中,MySQL 双主读写分离以及故障自动切换的解决方案。下面将...

    mysql+mycat+keepalived+haproxy集群(生产环境实测).doc

    2. 配置Keepalived:在`/etc/keepalived/keepalived.conf`中定义主、备节点的角色,设置监控的检查脚本和VIP。 3. 启动Keepalived:`systemctl start keepalived` 4. 配置VIP漂移:当主节点故障时,VIP会自动漂移到...

    部署haproxy+ssl+keepalived

    1. **系统准备**:首先,我们需要在CentOS 7系统上安装必要的软件包,包括haproxy、openssl(用于生成SSL证书)、keepalived等。 2. **配置haproxy**:编写haproxy的配置文件(通常为`/etc/haproxy/haproxy.cfg`)...

    HAproxy+Keepalived 负载均衡架构搭建

    **HAproxy的配置与安装:** 1. **安装HAproxy**:在Red Hat 5.8上,可以通过`yum`命令来安装HAproxy。执行`sudo yum install haproxy`,等待安装完成。 2. **配置HAproxy**:配置文件通常位于`/etc/haproxy/...

    Haproxy+Keepalived+Nginx+Lamp+Nfs实现高可用集群1

    1. 安装并配置Haproxy和Keepalived在ld1和ld2服务器上,配置负载均衡策略和故障切换规则。 2. 在ng1和ng2服务器上安装Nginx,配置反向代理规则,指向Haproxy的VIP。 3. 在lamp1和lamp2服务器上安装LAMP环境,配置...

    Haproxy+Keepalived配置文件(带注释)

    Haproxy和Keepalived就是两个常用工具,它们可以构建出一个高效且可靠的分布式系统。本篇将详细介绍这两个工具以及它们的配置文件。 Haproxy是一款开源的高性能、高可用的负载均衡器,它能对HTTP、TCP等多种协议...

    搭建MySQL高可用+负载均衡集群(haproxy+keepalived).docx

    在部署环境中,文章提到了四台CentOS或Redhat虚拟机,分别用于MySQL实例、haproxy和keepalived的安装。MySQL实例配置了主主复制,以解决读写问题并确保数据一致性。主主复制的关键在于解决自增ID冲突,通过设置`auto...

    Haproxy+Keepalived+Nginx+Lamp+Nfs实现高可用集群练习1

    通过配置 Haproxy 和 Keepalived 实现高可用性,确保集群的可用性和负载均衡。 知识点: 1. 高可用集群的定义和重要性 高可用集群是指一个系统或应用程序在出现故障或宕机时仍能继续提供服务的能力。高可用集群...

    PHP高级工程师必知必会Nginx+keepalived+MongoDB+haproxy+Sphinx实现分布式集群部署实战视频

    本文将围绕“Nginx + keepalived + MongoDB + haproxy + Sphinx”这一技术栈,详细介绍如何实现一个稳定的分布式集群部署方案。 #### 二、关键技术解析 ##### 1. Nginx **定义**:Nginx是一款高性能的HTTP和反向...

    MyCat高可用负载均衡集群实现(HAProxy+Keepalived+MyCat).pdf

    ### MyCat高可用负载均衡集群实现(HAProxy+Keepalived+MyCat) #### 一、概述 在当今高度依赖数据库应用的企业环境中,确保数据库系统的稳定性和高效性至关重要。为了达到这一目标,采用高可用(High ...

    Mariadb集群+haproxy+keepalived +性能测试

    在了解了如何安装和配置MariaDB集群、Haproxy以及Keepalived,以及如何进行性能测试之后,接下来让我们深入探讨每部分的知识点。 首先,MariaDB集群的安装和配置是构建高可用和负载均衡数据库的关键步骤。MariaDB是...

    第53节--MyCat高可用负载均衡集群实现(HAProxy+Keepalived+MyCat

    - 其次,安装并配置多个MyCat实例,作为数据的接入层。 - 接着,部署HAProxy,设置相应的负载均衡策略。 - 然后,配置Keepalived实现高可用,监控MyCat节点的状态。 - 最后,测试整个集群的性能和稳定性,进行...

Global site tag (gtag.js) - Google Analytics