需要准备五台实验机
一台客户机:test1
两台:一主一备的实验机:test2 test3
两台真实服务器:nginx1 nginx2
实验
首先在两台实验机上安装Haproxy
安装依赖环境,并将Haproxy的包进行解压处理
yum install -y pcre-devel bzip2-devel gcc gcc-c++ make
安装完依赖环境 对Haproxy的压缩包进行解压,进入到Haproxy的配置文件中,查看他的版本,target使用的版本要大于linux2.60以上的版本 make install进行编译安装
在etc下创建一个Haproxy目录 将主配置文件复制到ect/haproxy里
进入到目录下修改配置文件
将日志放到指定的位置并设置级别
将并发线程设置为cpu的2倍或者和cpu保持一致
设置连接时间
timeout http-request 10s: 设置HTTP请求的超时时间为10秒。
timeout queue 1m: 设置请求队列的超时时间为1分钟。
timeout connect 10s: 设置连接建立的超时时间为10秒。
timeout client 1m: 设置客户端连接的超时时间为1分钟。
timeout server 1m: 设置服务器端连接的超时时间为1分钟。
timeout http-keep-alive 10s: 设置HTTP keep-alive 的超时时间为10秒。
timeout check 10s: 设置健康检查的超时时间为10秒。
然后配置七层转发
访问真实的服务器地址
修改完配置文件后 将初始化文件复制到/etc/init.d/haproxy 并赋予权限,创建软链接让系统可以识别命令
要先创建一个脚本监控keepalive。在两台试验机安装keepalive设置一主一备
修改邮箱地址
命名一个id IP名称不能一样
添加一个vrrp脚本模块
修改模块内容 网卡信息 优先级
VIP地址
vim /opt/check_haproxy.sh
#内容如下
#!/bin/bash
/usr/bin/curl -I http://localhost &>/dev/null
#指定curl命令的路径调用curl命令
#curl -I 仅查看http响应头部信息,而不用下载页面内容,常用于状态检查
if [ $? -ne 0 ]
thensystemctl stop keepalived
fi
在备上 修改一个名字 和优先级即可
查看两台keepalive的配置是否正确VIP地址是否正常先测试一下两台是否可以访问真实的服务器
然后关闭test2的keepalive看一下vip是否会实现转移
脚本要给执行权限否则执行不了
客户机访问正常