环境
Keepalived + haproxy主:
Ip:192.1.10.119/24
Hostname:Master
Keepalived + haproxy备:
Ip:192.1.10.120/24
Hostname:Backup
Nginx:
Ip:192.1.10.121/24
Hostname:WEB1
Keepalived 部署
一、安装yum源(主、备)
yum -y install keepalived
二、配置
主:
[root@Master keepalived]# cat keepalived.conf
global_defs {
router_id lb-master-192.1.10.119
}
#vrrp_script check-haproxy {
# script "killall -0 haproxy"
# interval 5
# weight -60
#}
vrrp_instance VI-kube-master {
state MASTER
priority 120
unicast_src_ip 192.1.10.119
unicast_peer {
192.1.10.120
}
dont_track_primary
interface ens33
virtual_router_id 222
advert_int 3
track_script {
check-haproxy
}
virtual_ipaddress {
192.1.10.111
}
}
[root@Master keepalived]#
备:
[root@Backup keepalived]# more keepalived.conf
global_defs {
router_id lb-backup-192.1.10.120
}
#vrrp_script check-haproxy {
# script "killall -0 haproxy"
# interval 5
# weight -60
#}
vrrp_instance VI-kube-master {
state BACKUP
priority 92
unicast_src_ip 192.1.10.120
unicast_peer {
192.1.10.119
}
dont_track_primary
interface ens33
virtual_router_id 222
advert_int 3
track_script {
check-haproxy
}
virtual_ipaddress {
192.1.10.111
}
}
三、启动keepalived
Systemctl start keepalived
四、验证keepalived
查看主节点ip出现了VIP 地址192.1.10.111
停止主节点keepalived,再查看备用
[root@Master keepalived]# systemctl stop keepalived
可见备节点出现了VIP,实现了VIP漂移。
nginx部署
一、联网状态下下载Nginx安装包(也可以将网址复制到浏览器下载)
[root@Web1 ~]# mkdir /root/nginx
[root@Web1 ~]# cd /root/nginx
[root@Web1 nginx]# wget http://nginx.org/download/nginx-1.18.0.tar.gz
yum -y install gcc openssl-devel pcre-devel zlib-devel
二、解压安装包
tar zxvf nginx-1.18.0.tar.gz
- 配置编译安装
cd nginx-1.18.0
./configure --prefix=/usr/local/nginx
make && make install
./nginx
三、验证安装
[root@Web1 nginx]# curl -I 192.1.10.121
HTTP/1.1 200 OK
Server: nginx/1.18.0
Date: Sat, 18 Feb 2023 08:43:35 GMT
Content-Type: text/html
Content-Length: 5
Last-Modified: Sat, 18 Feb 2023 07:53:46 GMT
Connection: keep-alive
ETag: "63f0840a-5"
Accept-Ranges: bytes
四、修改网页内容
[root@Web1 ~]cd /usr/local/nginx/html
[root@Web1 html]# echo Web1 > index.html
五、重启nginx后验证
[root@Web1 sbin]# cd /usr/local/nginx/sbin
[root@Web1 sbin]# ./nginx -s reload
[root@Web1 sbin]# curl 192.1.10.121
Web1
以上nginx验证成功
haproxy部署
一、安装包下载
https://www.haproxy.org/download/1.4/src
我安装版本如图
二、安装haproxy(主备步骤一致)
[root@Master ~]# mkdir haproxy
[root@Master haproxy]# tar -zxvf haproxy-1.4.24.tar.gz
[root@Master haproxy-1.4.24]# make TARGET=linux26 #内核版本大于2.6的使用
#我的内核版本:
[root@Master haproxy]# uname -a
Linux Master 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@Master haproxy-1.4.24]#make install
三、配置修改
[root@Master haproxy-1.4.24]#mkdir /etc/haproxy
[root@Master haproxy-1.4.24]cp examples/haproxy.cfg /etc/haproxy/ #将软件包中的配置文件模板复制到haproxy目录中
vim /etc/haproxy/haproxy.cfg #修改haproxy.cfg配置参数
下面两项前面加上注释
#chroot /usr/share/haproxy #固有目录,可注释掉
#redispatch #当使用了cookie时,haproxy将会将其请求的后端服务器的serverID插入到cookie中,以保证会话的SESSION持久性;而此时,如果后端的服务器宕掉了,但是客户端的cookie是不会刷新的,如果设置此参数,将会将客户的请求强制定向到另外一个后端server上,以保证服务的正常。需要注释掉
删除将原来的listen配置项,添加新配置:
listen webcluster 0.0.0.0:80
option httpchk GET /index.html
balance roundrobin
server nginx1 192.1.10.121:80 check inter 2000 fall 3
优化服务启动:
cd /etc/haproxy
[root@Master haproxy]# cp haproxy-1.4.24/examples/haproxy.init /etc/init.d/haproxy
[root@Master ~]#chmod 755 /etc/init.d/haproxy
[root@Master ~]#chkconfig --add /etc/init.d/haproxy
[root@Master ~]#ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
[root@Master ~]#mkdir /etc/haproxy/errors
[root@Master ~]#cd /etc/haproxy/errors
[root@Master errors]#touch 503.http
[root@Master errors]# ll
总用量 0
-rw-r--r--. 1 root root 0 2月 18 16:08 503.http
四、启动haproxy
systemctl start haproxy
五、验证是否haproxy生效
#由图可见,VIP在主上,主备访问VIP可看见Web1主机的网页
[root@Master ~]# curl 192.1.10.111
Web1
[root@Backup ~]# curl 192.1.10.111
Web1
#本地windows物理机访问
#停止Master的keepalived
#由图可见,VIP在备上,主备访问VIP可看见Web1主机的网页
[root@Master ~]# curl 192.1.10.111
Web1
[root@Backup ~]# curl 192.1.10.111
Web1
#本地windows物理机访问
以上实验可见关闭主服务器后,漂移ip由备份服务器承担 ,继续工作,仍然可以访问后方的http网站
HAProxy提供高可用、负载均衡以及基于TCP(第四层)和HTTP(第七层)的应用的代理