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

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

542次阅读
没有评论

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

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7963503
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手!

星哥带你玩飞牛 NAS-13:自动追番、订阅下载 + 刮削,动漫党彻底解放双手! 作为动漫爱好者,你是否还在为...
从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统

从“纸堆”到“电子化”文档:用这个开源系统打造你的智能文档管理系统 大家好,我是星哥。公司的项目文档存了一堆 ...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

免费无广告!这款跨平台AI RSS阅读器,拯救你的信息焦虑

  免费无广告!这款跨平台 AI RSS 阅读器,拯救你的信息焦虑 在算法推荐主导信息流的时代,我们...