0
点赞
收藏
分享

微信扫一扫

keepalived 和haproxy 搭建

莞尔小迷糊 2022-02-25 阅读 66
  1. haproxy +keepalived 部署
    1. 准备工作
      1. 准备安装包 haproxy-1.7.8.tar.gz 与 keepalived-2.0.18.tar.gz 
      2. 准备服务器两台 10.163.44.119,10.163.44.120
      3. 准备浮动ip(同网段)  10.163.44.156
    2. Harpoxy安装
      1. 解压

# tar zxvf haproxy-1.7.8.tar.gz

      1. 编译

       

       

# cd haproxy-1.7.8
# make PREFIX=/data/haproxy/configureHaproxy TARGET=linux2628

 

      1. 安装

# make install PREFIX=/data/harpoxy/configureHaproxy

执行完这一步/data/haproxy/ 路劲下面将会有个configureHaproxy 文件夹

 

PREFIX 为指定的安装路径

TARGET则根据当前操作系统内核版本指定

    • - linux22 for Linux 2.2
    • - linux24 for Linux 2.4 and above (default)
    • - linux24e for Linux 2.4 with support for a working epoll (> 0.21)
    • - linux26 for Linux 2.6 and above
    • - linux2628 for Linux 2.6.28, 3.x, and above (enables splice and tproxy)

本文的操作系统内核版本为3.10.0,TARGET指定为 linux2628。

    1.  haproxy 配置
      1. 创建修改配置文件

# cd /data/haproxy/configureHaproxy

# mkdir conf

# cd conf

# vi haproxy.cfg  

输入一下内容

 

具体内容如下

global

    log 127.0.0.1 local3 info

    user haproxy

    group haproxy

    daemon

    maxconn 4000

    pidfile /data/haproxy/configureHaproxy/conf/haproxy.pid

defaults

    log global

    mode tcp                  #所处理的类别,默认采用http模式,可配置成tcp作4层消息转发

    maxconn 4096              #限制单个进程的最大连接数

    option tcplog            #http 日志格式

    option dontlognull        #不记录空连接

    option forwardfor         #如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip

    option httpclose          #每次请求完毕后主动关闭http通道,haproxy不支持keep-alive,只能模拟这种模式的实现

    option abortonclose       #当服务器负载很高的时候,自动结束掉当前队列处理比较久的连接

    option redispatch         #在连接失败或断开的情况下,允许当前会话被重新分发

    retries 3                 #设置在一个服务器上链接失败后的重连次数

    balance source            #表示根据请求源IP,这个跟Nginx的IP_hash机制类似,我们用其作为解决session问题的一种方法。

    timeout client 30s        #设置客户端的最大超时时间(毫秒)

    timeout connect 5s        #设置等待连接到服务器成功的最大时间

    timeout server 30s        #设置服务器端的最大超时时间

    timeout check 5s          #心跳检测时间

frontend  secure              #自定义一个frontend,也可以放在listen或者backend中

    bind *:8080               #监听的ip端口号

    stats enable              #开关

    mode http

    option httplog

    log    global

    maxconn 10

    stats  uri  /admin  #访问的uri   ip:8888/admin?admin

    stats auth admin:admin    #认证用户名和密码

    stats hide-version        #隐藏HAProxy的版本号

    stats admin if TRUE       #管理界面,如果认证成功了,可通过webui管理节点

    stats  refresh  30s       #统计页面自动刷新时间

frontend tcp_front

    bind *:8888

    #haproxy的状态管理页面,通过/haproxy?stats来访问

    default_backend tcp_back

backend tcp_back

    mode tcp

    balance roundrobin

    server redis-233 10.163.44.119:8888  check inter 2000 fall 5

    server redis-234 10.163.44.120:8889 check inter 2000 fall 5

      1. 在conf 路劲下面创建一个haproxy.pid

 

两台服务器配置一样

      1. 启停haproxy

service haproxy start

service haproxy stop

重启

# service haproxy restart

    1. Keepalived 安装
      1. 进入执行目录解压

命令:tar -zxvf keepalived-2.0.18.tar.gz 并进入目录

有可能需要依赖

yum -y install libnl libnl-devel

      1.  执行配置,指定路径

./configure --prefix=/data/keepalived/configureKeepalived/

 

      1. 编译

命令:make && make install

 

      1. 拷贝配置文件
        1. #拷贝源码中的keepalived  /etc/init.d/

命令:cp /data/keepalived/keepalived-2.0.18/keepalived/etc/init.d/keepalived /etc/init.d/

        1. #拷贝编译后的 keepalived   /etc/sysconfig/

命令:cp /data/keepalived/configureKeepalived/etc/sysconfig/keepalived  /etc/sysconfig/

        1. 创建文件夹

mkdir /etc/keepalived

        1.   把配置文件移动到文件夹中

cp /data/keepalived/configureKeepalived/etc/keepalived/keepalived.conf  /etc/keepalived/

        1. 把执行文件移动到/usr/sbin 下面

cp /data/keepalived/configureKeepalived/sbin/keepalived  /usr/sbin/

      1. 修改配置文件keepalived.conf 输入一下内容

global_defs {

   smtp_connect_timeout 30

   router_id LVS_DEVEL02  #两个服务器不能一样

}

vrrp_instance VI_1 {

    state BACKUP    #备份服务器 是backup

    interface eno16777736

    virtual_router_id 51

    priority 90    #优先级要低 (两台服务器不一样 搞得问主机)

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        10.163.44.156    #漂移ip

    }

}

      1. 创建检查脚本

检查服务器简况状态: 比如haproxy 停止了但是keepalived 并没有停止 

这个使用需要使用脚本来进行切换: 脚本如下:

"check_haproxy.sh" 12L, 474C

#!/bin/bash

#echo "`date` haproxy is dead1" >> /etc/keepalived/aa.log

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

#echo "`date` haproxy is dead2" >> /etc/keepalived/aa.log

if [ "${status}" = "0" ]; then

#    echo "`date` haproxy is dead" >> /etc/keepalived/aa.log

    systemctl  start  haproxy

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

    if [ "${status2}" = "0"  ]; then

           systemctl stop keepalived

    fi

fi

      1. 启动

systemctl start keepalived

举报

相关推荐

0 条评论