当前位置: 首页 > news >正文

haproxy+keepalived集群搭建02

haproxy+keepalived集群搭建02

  • 前言
  • 1 安装haproxy
    • 1.1 下载
    • 1.2 安装依赖
    • 1.3 编译
    • 1.4 创建配置文件目录
    • 1.5 添加配置文件软连接
    • 1.6 拷贝错误页面并添加目录软连接(HTTP模式选配)
    • 1.7 拷贝开机启动文件并授权
    • 1.8 添加haproxy命令脚本软连接
    • 1.9 设置HAProxy开机启动
    • 1.10 添加haproxy用户组和用户并创建chroot运行路径
    • 1.11 haproxy 配置文件
  • 2 安装rsyslog日志服务
    • 2.1 安装
    • 2.2 配置
    • 2.3 添加配置文件
    • 2.4 重启rsyslog服务
  • 3、开启端口
  • 4、开启haproxy并验证
  • 5、安装keepalived(自定义)
    • 5.1 下载并解压
    • 5.2 安装依赖
    • 5.3 编译安装
    • 5.4 配置
    • 5.5 设置开机启动
    • 5.6 其他命令
  • 6、 验证keepalived


前言

安装方式:自定义安装
服务器环境:Centos7.5
haproxy版本:2.5.7
keepalived版本:2.0.20


1 安装haproxy

1.1 下载

HAProxy官方下载地址为: https://www.haproxy.org/#down,如果这个网站无法访问,也可以从 hkps:/src.fedoraproject.org/repo/pkgs/haproxy/上进行下载。这里我下载的是2.5.7版本,下载后通过xftp等工具将压缩包上传至服务器的/usr/local/目录下,然后进行解压:

cd /usr/local
tar -zxvf haproxy-2.5.7.tar.gz 

1.2 安装依赖

yum -y install make gcc gcc-c++ libpcre3-dev openssl libssl-dev zlib1g-dev

1.3 编译

cd /usr/local/haproxy-2.5.7
make TARGET=3100 ARCH=x86_64 PREFIX=/usr/local/haproxy
make install TARGET=3100 ARCH=x86_64 PREFIX=/usr/local/haproxy

1.4 创建配置文件目录

mkdir -p /usr/local/haproxy/conf
mkdir -p /etc/haproxy/

1.5 添加配置文件软连接

touch /usr/local/haproxy/conf/haproxy.cfg
ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg

1.6 拷贝错误页面并添加目录软连接(HTTP模式选配)

cp -r /usr/local/haproxy-2.5.7/examples/errorfiles /usr/local/haproxy/
ln -s /usr/local/haproxy/errorfiles /etc/haproxy/errorfiles

1.7 拷贝开机启动文件并授权

cp /usr/local/haproxy-2.5.7/examples/haproxy.init /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy

1.8 添加haproxy命令脚本软连接

ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin

1.9 设置HAProxy开机启动

chkconfig --add haproxy
chkconfig haproxy on

1.10 添加haproxy用户组和用户并创建chroot运行路径

HAProxy配置文件有指定用户和用户组,以及chroot运行路径:

groupadd haproxy
useradd -g haproxy haproxy
mkdir /usr/share/haproxy

1.11 haproxy 配置文件

vi /usr/local/haproxy/conf/haproxy.cfg

配置文件内容如下:

globallog 127.0.0.1    local0chroot /usr/share/haproxygroup    haproxyuser    haproxydaemonmaxconn 4096node    edu-haproxy-01description    edu-haproxy-01
defaultsmode                    httplog                     globaloption                  httplogoption                  dontlognulloption http-server-closeoption forwardfor       except 127.0.0.0/8option                  redispatchretries                 3timeout http-request    10stimeout queue           1mtimeout connect         10stimeout client          1mtimeout server          1mtimeout http-keep-alive 10stimeout check           10smaxconn                 3000
listen statsbind          0.0.0.0:8000mode          httpstats         enablestats         hide-versionstats uri     /haproxystatsstats realm   Haproxy\statsstats auth    admin:adminstats admin   if TRUEfrontend http-inbind 0.0.0.0:5672mode tcplog globaloption httplogoption httpclosedefault_backend rabbitmq-serverbackend rabbitmq-servermode tcpbalance roundrobinserver  rabbitmq-node1 192.168.45.201:5672 maxconn 2000 weight 1  check inter 5s rise 2 fall 2server  rabbitmq-node2 192.168.45.202:5672 maxconn 2000 weight 1  check inter 5s rise 2 fall 2server  rabbitmq-node3 192.168.45.203:5672 maxconn 2000 weight 1  check inter 5s rise 2 fall 2

2 安装rsyslog日志服务

2.1 安装

yum -y install rsyslog

2.2 配置

vi /etc/rsyslog.conf
# Provides UDP syslog reception
# 打开下面的配置
$ModLoad imudp
$UDPServerRun 514# Provides TCP syslog reception
# 打开下面的配置
$ModLoad imtcp
$InputTCPServerRun 514

2.3 添加配置文件

在/etc/rsyslog.d/目录下创建 haproxy的日志配置文件haproxy.log

vi /etc/rsyslog.d/haproxy.log

添加配置内容如下:

local0.* /var/log/haproxy.log
&~

2.4 重启rsyslog服务

systemctl restart rsyslog.service

3、开启端口

需要参考haproxy中的配置文件“/usr/local/haproxy/conf/haproxy.cfg”,该文件中使用到了哪些端口就开启哪些端口即可;我这里使用到了8000和5672端口;

# 查看防火墙状态,如果未开启防火墙,那么需要先开启防火墙
firewall-cmd --state
# 开启防火墙
systemctl start firewalld.service
#查看已开启的端口
firewall-cmd --list-ports
#开启指定端口
firewall-cmd --zone=public --add-port=8000/tcp --permanent
firewall-cmd --zone=public --add-port=5672/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --reload

4、开启haproxy并验证

systemctl start haproxy
systemctl status haproxy

管理后台地址:http://192.168.45.191:8000/haproxystats
账号:admin
密码:admin
在这里插入图片描述

在这里插入图片描述

5、安装keepalived(自定义)

按照上述步骤安装完毕两台haproxy:
haproxy-01:192.168.45.191
haproxy-02:192.168.45.192
计划配置虚拟ip:192.168.45.190

5.1 下载并解压

下载地址:https://www.keepalived.org/download.html

cd /usr/local/
tar -zxvf keepalived-2.0.20.tar.gz 

5.2 安装依赖

yum -y install openssl-devel libnl libnl-devel

5.3 编译安装

cd keepalived-2.0.20/
./configure --prefix=/usr/local/keepalived
make && make install

编译安装后会生成以下文件路径:
/usr/local/etc/keepalived/keepalived.conf
/usr/local/etc/sysconfig/keepalived
/usr/local/sbin/keepalived

5.4 配置

# keepalived启动脚本变量引用文件,默认文件路径是/etc/sysconfig/,也可以不做软链接,直接修改启动脚本中文件路径即可(安装目录下)
cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/keepalived # 将keepalived主程序加入到环境变量(安装目录下)
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/keepalived# keepalived启动脚本(源码目录下),放到/etc/init.d/目录下就可以使用service命令便捷调用
cp /usr/local/keepalived-2.0.20/keepalived/etc/init.d/keepalived  /etc/init.d/keepalived# 将keepalived配置文件放到默认路径下
mkdir /etc/keepalived
touch /etc/keepalived/keepalived.conf

haproxy-01的keepalived.conf配置文件内容如下:

vi /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id director1
}
vrrp_script check_haproxy {script "/etc/keepalived/haproxy_chk.sh"interval 5
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 80priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.45.190}track_script {check_haproxy}
}

haproxy-02的keepalived.conf配置文件内容如下:

vi /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {router_id director2
}
vrrp_script check_haproxy {script "/etc/keepalived/haproxy_chk.sh"interval 5
}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 80priority 50advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.45.190}track_script {check_haproxy}
}

5.5 设置开机启动

# 添加为系统服务
chkconfig --add keepalived
# 设置开机启动
chkconfig keepalived on

5.6 其他命令

# 启动、关闭、重启、查看 keepalived 
systemctl start keepalived 
systemctl stop keepalived 
systemctl restart keepalived 
systemctl status keepalived 

6、 验证keepalived

在这里插入图片描述
在这里插入图片描述

http://www.xdnf.cn/news/857557.html

相关文章:

  • 南师大学生用考研Style鼓舞士气
  • Python调用天气API
  • TransparentBlt、StretchBlt与BitBlt三个函数的区别
  • RW-50004:Error code received when running external process
  • 解决git错误: error object file is empty , The remote end hung up unexpectedly
  • SEO外链神器,这几款工具能帮助网站快速搞定!
  • 数据防泄漏软件10款超好用推荐|2024数据防泄漏软件分享
  • 耗时一个月整理的《java架构师学习路线》太全了
  • 怎样判定网站是否被K?网站被K的原因与解决办法
  • CMMI是什么? 看完这篇你就懂了
  • 【FFmpeg实战】FLV封装格式介绍及解析
  • 零基础——最实用的STC8051单片机学习资料
  • 磁盘分区魔法师Norton PartitionMagic(PQ8.0)使用图解和使用
  • 404 not found是什么意思?网站出现404 Not Found怎么解决?
  • 五大健身房管理软件实测超详细解读,健身房管理软件排名!
  • 如何外包软件开发
  • 51单片机LCD1602程序详解
  • 【Qt专栏】实现单例程序,禁止程序多开的几种方式
  • Hive 操作数据库语句总结
  • github life restart 竟然可以修仙,还能这样玩
  • 人脸扫描建模_黑科技 | 3D人脸建模可以多简单?一张照片就搞定!
  • 产品经理懂点技术:几种常用的系统开发方法
  • Set、Map、List三种集合的差别
  • jQuery实现移动端手机选择日期日历插件
  • 【精品,面试之前必读】【转贴】安氏大俗商业学(2005-8-28)
  • 计算机网络——3A安全认证
  • 黑客入侵常见的一些手段!我敢说,你至少见过其中一种
  • STM32单片机自学教程
  • 大据数技术之高频面试题8.0.9
  • 处理中文乱码和中文部分乱码