一、keepalive介绍
keepalived是一种用于实现Linux主备高可用性(HA)集群的工具。它采用VRRP协议(虚拟路由冗余协议)用于主备服务器的通信,并检测服务器的状态从而自动切换主备角色。keepalived具有以下优点:
- 高可靠性:keepalived采用VRRP协议进行通信,能够保证高可靠性。
- 自动故障检测:keepalived能够检测服务器的状态,并自动切换主备角色。
- 简单易用:keepalived的配置文件是纯文本格式,易于编辑和修改,具有较高的灵活性。
- 支持多种配置方式:keepalived可以通过文件、字符串、网址等多种方式来进行配置。
- 支持邮件通知:keepalived支持在主备切换时发送邮件通知,方便管理员及时了解服务器状态。
在实现Linux主备高可用性的过程中,采用keepalived是一种比较流行和可靠的工具。
二、haproxy介绍
HAProxy是一种用于实现负载均衡的自由及开放源代码软件,它支持 TCP 和 HTTP 协议,并能够在多台服务器之间进行负载均衡。HAProxy具有以下特点:
- 高可靠性:HAProxy支持热插拔功能,并支持无缝切换,能够在不影响现有连接的情况下进行服务器的添加、删除、升级和维护。
- 高性能:HAProxy具有卓越的性能,能够实现高并发访问,支持多核心和多线程技术。
- 功能丰富:HAProxy支持多种负载均衡算法和健康检查方式,可以根据不同的应用场景和需求进行设置。
- 灵活性高:HAProxy支持多种协议,包括TCP、HTTP、HTTPS等,能够适应不同的业务需求。
- 配置方便:HAProxy采用纯文本格式进行配置,易于管理和调整。
在实现负载均衡的过程中,HAProxy是一种非常流行的选择,特别适合于需要高性能、高可靠性和灵活配置的场景。同时,HAProxy也可以与常见的Web服务器如nginx、Apache等配合使用,实现更加复杂的负载均衡场景。
三、安装
1、安装haproxy
1.1下载haproxy-1.7.2.tar.gz安装包
wget https://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz
1.2解压安装包进入目录haproxy-1.7.2/下
tar xf haproxy-1.7.2.tar.gz
cd haproxy-1.7.2/
1.3编译安装
查看内核版本的命令:uname -r
#编译
make PREFIX=/usr/local/haproxy TARGET=linux2628
#安装
make install PREFIX=/usr/local/haproxy
1.4建立配置文件
mkdir /etc/haproxy
touch /etc/haproxy/haproxy.cfg -p
1.5添加为系统服务
cp /root/haproxy-1.7.2/examples/haproxy.init /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy
vim /etc/init.d/haproxy
#修改: 35行 内容为 BIN=/usr/local/haproxy/sbin/$BASENAME
chkconfig --add /etc/init.d/haproxy
1.6填写配置文件内容
global #全局属性
daemon #以daemon方式在后台运行
maxconn 256 #最大同时256连接
pidfile /home/ha/haproxy/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 *:80 #监听8080端口
default_backend servers #请求转发至名为"servers"的后端服务
backend servers #后端服务servers
server server1 192.168.115.202:80 maxconn 32
server server2 192.168.115.203:80 maxconn 32
#backend servers中两个后端服务,名字叫server1、server2,起在本机的80端口,HAProxy同时最多向这
个服务发起32个连接
1.7启动HAProxy服务
service haproxy start
service haproxy stop
service haproxy restart | reload
也可以使用systemctl进行启停
2、安装keepalive
2.1yum安装keepalive
yum install -y keepalived
2.2配置keepalive
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 HA_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.115.200
}
track_script {
chk_haproxy #对应的健康检查配置
}
}
2.3 启动keepalive
systemctl start keepalived
3、安装httpd
yum -y install httpd
#添加主页文件
#web1服务器
echo web1 > /var/www/html/index.html
#web2服务器
echo web2 > /var/www/html/index.html
启动
systemctl start httpd
四、验证
curl 192.168.115.201:80