阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7下Keepalived + HAProxy 搭建配置详解

217次阅读
没有评论

共计 12228 个字符,预计需要花费 31 分钟才能阅读完成。

第一步:准备

1. 操作系统

CentOS-7-x86_64-Everything-1511

2. 安装包

haproxy-1.7.2.tar.gz

第二步:安装

# tar zxvf haproxy-1.7.2.tar.gz
# cd haproxy-1.7.2
# make PREFIX=/root/haproxy TARGET=linux2628
# make install PREFIX=/root/haproxy
  • 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. 创建配置文件

# cd haproxy
# mkdir conf
# touch haproxy.cfg

2. 编辑配置文件

配置文件内容如下:

global #全局属性
    daemon  #以 daemon 方式在后台运行
    maxconn 256  #最大同时 256 连接
    pidfile /root/haproxy/conf/haproxy.pid  #指定保存 HAProxy 进程号的文件

defaults #默认参数
    mode http  #http 模式
    timeout connect 5000ms  #连接 server 端超时 5s
    timeout client 50000ms  #客户端响应超时 50s
    timeout server 50000ms  #server 端响应超时 50s

frontend http-in #前端服务 http-in
    bind 192.168.6.128:9090  #监听 9090 端口
    default_backend servers  #请求转发至名为 "servers" 的后端服务

backend servers #后端服务 servers
balance roundrobin # 使用 RR 负载均衡算法 server server1 192.168.6.128:8080 maxconn 32 #backend servers 中只有一个后端服务,名字叫 server1,启在本机的 8000 端口,HAProxy 同时最多向这个服务发起 32 个连接
server server2 192.168.6.129:8080 maxconn 32
server server3 192.168.6.130:8080 maxconn 32

注意:HAProxy 要求系统的 ulimit -n 参数大于 [maxconn*2+18],在设置较大的 maxconn 时,注意检查并修改 ulimit -n 参数。

3. 将 HAProxy 注册为系统服务

1)在 /etc/init.d 目录下添加 HAProxy 服务的启停脚本:

# vi /etc/init.d/haproxy

启停脚本内容如下:

#!/bin/sh
set -e

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/home/ha/haproxy/sbin
PROGDIR=/root/haproxy
PROGNAME=haproxy
DAEMON=$PROGDIR/sbin/$PROGNAME
CONFIG=$PROGDIR/conf/$PROGNAME.cfg
PIDFILE=$PROGDIR/conf/$PROGNAME.pid
DESC="HAProxy daemon"
SCRIPTNAME=/etc/init.d/$PROGNAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

start()
{echo -e "Starting $DESC: $PROGNAME\n"
       $DAEMON -f $CONFIG
       echo "."
}

stop()
{echo -e "Stopping $DESC: $PROGNAME\n"
       haproxy_pid="$(cat $PIDFILE)"
       kill $haproxy_pid
       echo "."
}

restart()
{echo -e "Restarting $DESC: $PROGNAME\n"
       $DAEMON -f $CONFIG -p $PIDFILE -sf $(cat $PIDFILE)
       echo "."
}

case "$1" in
 start)
       start
       ;;
 stop)
       stop
       ;;
 restart)
       restart
       ;;
 *)
       echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
       exit 1
       ;;
esac

exit 0

2)将启动脚本添加可执行权限

# chmod +x haproxy

4. 配置日志

HAProxy 不会直接输出文件日志,需要借助 Linux 的 rsyslog 来让 HAProxy 输出日志。

1)修改 haproxy.cfg

在配置文件的 global 和 defaults 域中添加以下字段:

global
    ...
    log 127.0.0.1 local0 info
    log 127.0.0.1 local1 warning
    ...

defaults
    ...
    log global
    ...

意思是将 info 级(及以上)的日志推送到 rsyslog 的 local0 接口,将 warn 级(及以上)的日志推送到 rsyslog 的 local1 接口,并且所有 frontend 都默认使用 global 中的日志配置。

注意:info 级的日志会打印 HAProxy 处理的每一条请求,会占用很大的磁盘空间,在生产环境中,建议将日志级别调整为 notice。

2)为 rsyslog 添加 haproxy 日志的配置

# vi /etc/rsyslog.d/haproxy.conf

配置文件内容如下:

$ModLoad imudp
$UDPServerRun 514
$FileCreateMode 0644  #日志文件的权限
$FileOwner root  #日志文件的 owner
local0.*     /var/log/haproxy.log  #local0 接口对应的日志输出文件
local1.*     /var/log/haproxy_warn.log  #local1 接口对应的日志输出文件 

3)修改 rsyslog 的启动参数

# vi /etc/sysconfig/rsyslog

配置文件内容如下:

# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
SYSLOGD_OPTIONS="-c 2 -r -m 0"

4)重启 rsyslog

# service rsyslog restart

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

5)用 logrotate 进行日志切分

通过 rsyslog 输出的日志是不会切分的,所以需要通过 Linux 提供的 logrotate 来对日志文件进行切分。

使用 root 用户,创建 haproxy 日志切分配置文件:

# mkdir /root/logrotate
# vi /root/logrotate/haproxy

配置文件内容如下:

/var/log/haproxy.log /var/log/haproxy_warn.log {  #切分的两个文件名
    daily        #按天切分
    rotate 7     #保留 7 份
    create 0644 root root  #创建新文件的权限、用户、用户组
    compress     #压缩旧日志
    delaycompress  #延迟一天压缩
    missingok    #忽略文件不存在的错误
    dateext      #旧日志加上日志后缀
    sharedscripts  #切分后的重启脚本只运行一次
    postrotate   #切分后运行脚本重载 rsyslog,让 rsyslog 向新的日志文件中输出日志
    /bin/kill -HUP $(/bin/cat /var/run/syslogd.pid 2>/dev/null) &>/dev/null
    endscript
}

6)将 logrotate 配置在 crontab 中:

0 0 * * * /usr/sbin/logrotate /root/logrotate/haproxy

第四步:启动

1. 启动

# service haproxy start

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

2. 重启

# service haproxy stop

 返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

3. 停止

# service haproxy restart

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

第五步:测试

1. 查看进程

执行以下命令:

# ps -ef|grep haproxy|grep -v grep

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

2. 查看端口

执行以下命令:

# lsof -i:9090

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

3. 查看日志

执行以下命令:

# cat /var/log/haproxy.log

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

4. 转发测试

提供服务的 server 为 Nginx,每个 nginx 上放入带有本机 IP 的 HTML 页面,相关信息如下:

IP Nginx 端口 HAProxy 端口
192.168.6.128 8080 9090
192.168.6.129 8080 9090
192.168.6.130 8080 9090

页面显示转发到了 192.168.6.130 主机上,返回信息:访问地址:http://192.168.6.128:9090/hello.html

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

日志显示:

1)HAProxy 日志

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

2)Nginx 日志

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

此时,HAPxoxy 已成功安装完成!

构建高可用集群 Keepalived+Haproxy 负载均衡  http://www.linuxidc.com/Linux/2016-12/138917.htm

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-03/141593p2.htm

第一步:准备

1. 简介

本文搭建的是利用 Keepalived 实现 HAProxy 的热备方案,即两台主机上的 HAProxy 实例同时运行,其中全总较高的实例为 MASTER,MASTER 出现异常时,另一台主机上的实例自动接管所有的流量。

在运行着 HAProxy 实例的两台主机上分别运行着 Keepalived 实例,这两个 Keepalived 争抢同一个 虚 IP 地址,两个 HAProxy 也尝试着去绑定同一个虚 IP 地址上的端口。只能有一个 Keepalived 能抢到这个虚 IP,抢到这个虚 IP 的 Keepalived 的主机上的 HAProxy 即为当前的 MASTER。

Keepalived 内部维护一个权重值,权重值最高的 Keepalived 实例能够抢到虚 IP。Keepalived 会定期检查所在主机上的 HAProxy 的状态,状态健康时,则权重值增加。

2. 操作系统

CentOS-7-x86_64-Everything-1511

3. 安装包

keepalived-1.3.4.tar.gz

4. HAProxy 安装

参照 Keepalived + HAProxy 搭建【第一篇】HAProxy 的安装和配置 在另一台主机(本文为 192.168.6.129)上安装 HAProxy 实例。

5. 安装 psmisc

使用 killall -0 检查 HAProxy 服务是否存在。如果没有 killall 命令,则需要安装 psmisc 包。

# yum intall psmisc

6. 安装 openssl

# yum install openssl-devel

不安装 openssl,keepalived 编译的时候会报错:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

7. 安装 libnl/libnl-3 库

# yum install libnl*

不安装 libnl/libnl-3,keepalived 编译的时候会报警告:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

8. 安装

# yum install libnfnetlink-devel

不安装 libnfnetlink-devel,keepalived 编译的时候会报错:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

第二步:安装与配置

1. 安装

# tar zxzf keepalived-1.3.4.tar.gz
# # cd keepalived-1.3.4 # .
/configure --prefix=/usr/local/keepalived # make # make install

2. 配置

1)注册为系统服务

# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
# touch /etc/init.d/keepalived
# chmod +x /etc/init.d/keepalived
# vi /etc/init.d/keepalived

/etc/init.d/keepalived 的文件内容:

#!/bin/sh
#
# Startup script for the Keepalived daemon
#
# processname: keepalived
# pidfile: /var/run/keepalived.pid
# config: /etc/keepalived/keepalived.conf
# chkconfig: - 21 79
# description: Start and stop Keepalived

# Source function library
. /etc/rc.d/init.d/functions

# Source configuration file (we set KEEPALIVED_OPTIONS there)
. /etc/sysconfig/keepalived

RETVAL=0

prog="keepalived"

start() {echo -n $"Starting $prog: "
    daemon keepalived ${KEEPALIVED_OPTIONS}
    RETVAL=$?
    echo
    [$RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
}

stop() {echo -n $"Stopping $prog: "
    killproc keepalived
    RETVAL=$?
    echo
    [$RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
}

reload() {echo -n $"Reloading $prog: "
    killproc keepalived -1
    RETVAL=$?
    echo
}

# See how we were called.
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    reload)
        reload
        ;;
    restart)
        stop
        start
        ;;
    condrestart)
        if [-f /var/lock/subsys/$prog ]; then
            stop
            start
        fi
        ;;
    status)
        status keepalived
        RETVAL=$?
        ;;
    *)
        echo "Usage: $0 {start|stop|reload|restart|condrestart|status}"
        RETVAL=1
esac

exit $RETVAL

2)编辑配置文件

# mkdir /etc/keepalived/
# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
# vi /etc/keepalived/keepalived.conf

配置文件内容:

global_defs {router_id LVS_DEVEL  #虚拟路由名称}

#HAProxy 健康检查配置
vrrp_script chk_haproxy {script "killall -0 haproxy"  #使用 killall - 0 检查 haproxy 实例是否存在,性能高于 ps 命令
    interval 2   #脚本运行周期
    weight 2   #每次检查的加权权重值
}

#虚拟路由配置
vrrp_instance VI_1 {state MASTER           #本机实例状态,MASTER/BACKUP,备机配置文件中请写 BACKUP
    interface eno16777736      #本机网卡名称,使用 ifconfig 命令查看
    virtual_router_id 51   #虚拟路由编号,主备机保持一致
    priority 101           #本机初始权重,备机请填写小于主机的值(例如 100)advert_int 1           #争抢虚地址的周期,秒
    virtual_ipaddress {192.168.6.131      #虚地址 IP,主备机保持一致
    }
    track_script {chk_haproxy        #对应的健康检查配置}
}

3. 启动

# service keepalived start

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

其他相关命令:

重启

# service keepalived restart

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

停止

# service keepalived stop

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

4. 测试

1)查看进程

# ps -ef|grep keepalived |grep -v grep

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

2)查看虚拟 IP 持有者

# ip addr sh eno16777736

其中,eno16777736 为网卡名称

持有虚 IP 的主机返回以下信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

另一台主机返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

如果先启动备机的 Keepalived,那么很有可能虚 IP 会被备机抢到,因为备机的权重配置只比主机低 1,只要执行一次健康检查就能把权重提高到 102,高于主机的 101。

第三步:测试

进行高可用性能测试

1. 架构信息

提供服务的 server 为 Nginx,每个 nginx 上放入带有本机 IP 的 HTML 页面,相关信息如下:

IP Nginx 端口 HAProxy 端口
192.168.6.128 8080 9090
192.168.6.129 8080 9090
192.168.6.130 8080 未安装

2. 转发测试

访问地址:http://192.168.6.131:9090/hello.html

返回的页面信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

HAProxy 日志信息(/var/log/haproxy.log):

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

Nginx 日志信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解 

3. 高可用测试

1)停掉 Keepalived 中为 MASTER 的主机上的 HAProxy 服务

# service haproxy stop

2)查看 Keepalived 日志(/var/log/messages)

MASER��192.168.6.128)健康检查失败,权重值从 103 降低到 101,得知更高的权重值为备机的 102,则进入备机状态:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

192.168.6.128 将虚 IP 释放:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

BACKUP(192.168.6.129)被选举为 MASTER:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

192.168.6.129 获得虚 IP:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

2)访问页面

地址:http://192.168.6.131:9090/hello.html

页面返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

HAProxy 日志信息(/var/log/haproxy.log):

CentOS 7 下 Keepalived + HAProxy 搭建配置详解 

Nginx 日志信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

附:搭建过程中遇到的问题

一、Haproxy 的问题

1. 现象

通过虚 IP 无法访问到 HAProxy,通过主机 IP 可以访问大 HAProxy。

2. 解决办法

配置 HAProxy 时,bind 的配置,写成了固定 IP:PORT 的格式,此时 HAProxy 无法绑定虚拟 IP。将改行配置改成 bind *:port,问题解决。

二、Keepalived 的问题

1. 现象:

停止 MASTER 主机上的 HAProxy 服务,虚 IP 不漂移到 BACKUP 主机上。

2. 问题处理过程

1)健康检查脚本

首先怀疑健康检查脚本的问题。

进行手动执行:

HAProxy 未启动时:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

HAProxy 启动时:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

说明脚本没有问题,排除该脚本问题。

2)Keepalived 主备切换

怀疑 Keepalived 本身就不能切换。

停止 MASTER 的 Keepalived 服务,发现虚 IP 漂移到了 BACKUP 主机上。

说明 Keepalived 可以进行主备切换

3)版本

怀疑 Keepalived 版本的问题。

安装其他的版本,问题依然未解决。

排除版本问题

4)其他

主备配置字段、执行检测脚本的配置字段等,均已排除。

3. 解决办法

1)查看 Keepalived 的日志,发现一直打印 pid 退出的的日志,怀疑与此有关。

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

2)观察 Keepalived 启动过程的日志,日志中提示健康检查脚本中的 killall 使用完整的路径,即 /usr/bin/killall,修改完成后,重启,主备切换正常。

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-03/141593.htm

第一步:准备

1. 操作系统

CentOS-7-x86_64-Everything-1511

2. 安装包

haproxy-1.7.2.tar.gz

第二步:安装

# tar zxvf haproxy-1.7.2.tar.gz
# cd haproxy-1.7.2
# make PREFIX=/root/haproxy TARGET=linux2628
# make install PREFIX=/root/haproxy
  • 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. 创建配置文件

# cd haproxy
# mkdir conf
# touch haproxy.cfg

2. 编辑配置文件

配置文件内容如下:

global #全局属性
    daemon  #以 daemon 方式在后台运行
    maxconn 256  #最大同时 256 连接
    pidfile /root/haproxy/conf/haproxy.pid  #指定保存 HAProxy 进程号的文件

defaults #默认参数
    mode http  #http 模式
    timeout connect 5000ms  #连接 server 端超时 5s
    timeout client 50000ms  #客户端响应超时 50s
    timeout server 50000ms  #server 端响应超时 50s

frontend http-in #前端服务 http-in
    bind 192.168.6.128:9090  #监听 9090 端口
    default_backend servers  #请求转发至名为 "servers" 的后端服务

backend servers #后端服务 servers
balance roundrobin # 使用 RR 负载均衡算法 server server1 192.168.6.128:8080 maxconn 32 #backend servers 中只有一个后端服务,名字叫 server1,启在本机的 8000 端口,HAProxy 同时最多向这个服务发起 32 个连接
server server2 192.168.6.129:8080 maxconn 32
server server3 192.168.6.130:8080 maxconn 32

注意:HAProxy 要求系统的 ulimit -n 参数大于 [maxconn*2+18],在设置较大的 maxconn 时,注意检查并修改 ulimit -n 参数。

3. 将 HAProxy 注册为系统服务

1)在 /etc/init.d 目录下添加 HAProxy 服务的启停脚本:

# vi /etc/init.d/haproxy

启停脚本内容如下:

#!/bin/sh
set -e

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/home/ha/haproxy/sbin
PROGDIR=/root/haproxy
PROGNAME=haproxy
DAEMON=$PROGDIR/sbin/$PROGNAME
CONFIG=$PROGDIR/conf/$PROGNAME.cfg
PIDFILE=$PROGDIR/conf/$PROGNAME.pid
DESC="HAProxy daemon"
SCRIPTNAME=/etc/init.d/$PROGNAME

# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0

start()
{echo -e "Starting $DESC: $PROGNAME\n"
       $DAEMON -f $CONFIG
       echo "."
}

stop()
{echo -e "Stopping $DESC: $PROGNAME\n"
       haproxy_pid="$(cat $PIDFILE)"
       kill $haproxy_pid
       echo "."
}

restart()
{echo -e "Restarting $DESC: $PROGNAME\n"
       $DAEMON -f $CONFIG -p $PIDFILE -sf $(cat $PIDFILE)
       echo "."
}

case "$1" in
 start)
       start
       ;;
 stop)
       stop
       ;;
 restart)
       restart
       ;;
 *)
       echo "Usage: $SCRIPTNAME {start|stop|restart}" >&2
       exit 1
       ;;
esac

exit 0

2)将启动脚本添加可执行权限

# chmod +x haproxy

4. 配置日志

HAProxy 不会直接输出文件日志,需要借助 Linux 的 rsyslog 来让 HAProxy 输出日志。

1)修改 haproxy.cfg

在配置文件的 global 和 defaults 域中添加以下字段:

global
    ...
    log 127.0.0.1 local0 info
    log 127.0.0.1 local1 warning
    ...

defaults
    ...
    log global
    ...

意思是将 info 级(及以上)的日志推送到 rsyslog 的 local0 接口,将 warn 级(及以上)的日志推送到 rsyslog 的 local1 接口,并且所有 frontend 都默认使用 global 中的日志配置。

注意:info 级的日志会打印 HAProxy 处理的每一条请求,会占用很大的磁盘空间,在生产环境中,建议将日志级别调整为 notice。

2)为 rsyslog 添加 haproxy 日志的配置

# vi /etc/rsyslog.d/haproxy.conf

配置文件内容如下:

$ModLoad imudp
$UDPServerRun 514
$FileCreateMode 0644  #日志文件的权限
$FileOwner root  #日志文件的 owner
local0.*     /var/log/haproxy.log  #local0 接口对应的日志输出文件
local1.*     /var/log/haproxy_warn.log  #local1 接口对应的日志输出文件 

3)修改 rsyslog 的启动参数

# vi /etc/sysconfig/rsyslog

配置文件内容如下:

# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
SYSLOGD_OPTIONS="-c 2 -r -m 0"

4)重启 rsyslog

# service rsyslog restart

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

5)用 logrotate 进行日志切分

通过 rsyslog 输出的日志是不会切分的,所以需要通过 Linux 提供的 logrotate 来对日志文件进行切分。

使用 root 用户,创建 haproxy 日志切分配置文件:

# mkdir /root/logrotate
# vi /root/logrotate/haproxy

配置文件内容如下:

/var/log/haproxy.log /var/log/haproxy_warn.log {  #切分的两个文件名
    daily        #按天切分
    rotate 7     #保留 7 份
    create 0644 root root  #创建新文件的权限、用户、用户组
    compress     #压缩旧日志
    delaycompress  #延迟一天压缩
    missingok    #忽略文件不存在的错误
    dateext      #旧日志加上日志后缀
    sharedscripts  #切分后的重启脚本只运行一次
    postrotate   #切分后运行脚本重载 rsyslog,让 rsyslog 向新的日志文件中输出日志
    /bin/kill -HUP $(/bin/cat /var/run/syslogd.pid 2>/dev/null) &>/dev/null
    endscript
}

6)将 logrotate 配置在 crontab 中:

0 0 * * * /usr/sbin/logrotate /root/logrotate/haproxy

第四步:启动

1. 启动

# service haproxy start

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

2. 重启

# service haproxy stop

 返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

3. 停止

# service haproxy restart

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

第五步:测试

1. 查看进程

执行以下命令:

# ps -ef|grep haproxy|grep -v grep

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

2. 查看端口

执行以下命令:

# lsof -i:9090

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

3. 查看日志

执行以下命令:

# cat /var/log/haproxy.log

返回信息:

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

4. 转发测试

提供服务的 server 为 Nginx,每个 nginx 上放入带有本机 IP 的 HTML 页面,相关信息如下:

IP Nginx 端口 HAProxy 端口
192.168.6.128 8080 9090
192.168.6.129 8080 9090
192.168.6.130 8080 9090

页面显示转发到了 192.168.6.130 主机上,返回信息:访问地址:http://192.168.6.128:9090/hello.html

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

日志显示:

1)HAProxy 日志

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

2)Nginx 日志

CentOS 7 下 Keepalived + HAProxy 搭建配置详解

此时,HAPxoxy 已成功安装完成!

构建高可用集群 Keepalived+Haproxy 负载均衡  http://www.linuxidc.com/Linux/2016-12/138917.htm

更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2017-03/141593p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计12228字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中