keeplived+haproxy 简单搭建
本文最后更新于2 天前,其中的信息可能已经过时,如有错误请发送邮件到 baicola@126.com

1.haproxy的特点有哪些?

概念:HAProxy是一个开源的、高性能的基于TCP和HTTP应用代理的高可用的、负载均衡服务软件,它支持双机热备、高可用、负载均衡、虚拟主机、基于TCP和HTTP的应用代理、图形界面查看信息等功能

适用场景:高负载、访问量很大、需要会话保持及代理应用代理的业务应用。

特点

  1. 健康检查功能:Haproxy 会自动的将该故障服务器摘除,当故障的服务器恢复后,Haproxy还会自动将该服务器自动加入进来提供服务。
  2. 代理功能: HAProxy的代理模式,可以使得所有应用服务器不会暴露到公共网络上,即后面的节点服务器不需要公网IP地址。

HAProxy支持两种主要代理模式:

  1. 基于4层TCP应用层代理
  2. 基于7层httpd代理

2.如可安装部署haproxy+keepalived高可用集群?

服务IP描述
Keepalived  vip Haproxy    负载均衡 主服务器vip:172.10.10.200 rip:172.10.10.100keepalived做为高可用 haproxy做为4层或7层负载均衡
Keepalived  vip Haproxy    负载均衡 备用服务器vip:172.10.10.200 rip:172.10.10.101keepalived做为高可用 haproxy做为4层或7层负载均衡
web服务器172.10.10.102后端真实服务器
web服务器172.10.10.103后端真实服务器

1.服务器环境准备

#修改主机名
[root@SMR ~]# hostnamectl set-hostname haproxy_master

[root@SMR1 ~]# hostnamectl set-hostname haproxy_bakup

[root@SMR2 ~]# hostnamectl set-hostname haproxy_web1

[root@SMR3 ~]# hostnamectl set-hostname haproxy_web2
#配置域名解析
cat >> /etc/hosts <<EOF

172.10.10.100 haproxy_master

172.10.10.101 haproxy_bakup

172.10.10.102 haproxy_web1

172.10.10.103 haproxy_web2

EOF

for ((i=100;i<=103;i++));do scp  /etc/hosts/  172.10.10.$i:/etc/hosts ;done
#关闭防火墙和selinx(四台机子)
ystemctl stop firewalld

setenforce 0

#配置时间同步

yum -y install ntp

crontab -e

*/1 * * * * /usr/sbin/ntpdate  ntp.aliyun.com

2.安装keepvlied(master 和 backup端)

#安装keepvlied
[root@haproxy_master ~]# yum -y install keepalived
#修改keepvlied配置文件
[root@haproxy_master ~]# echo '' > /etc/keepalived/keepalived.conf

[root@haproxy_master ~]# vim /etc/keepalived/keepalived.conf

image 2 1
[root@haproxy_master ~]# scp /etc/keepalived/keepalived.conf 172.10.10.10

1:/etc/keepalived/keepalived.conf

[root@haproxy_bakup ~]# vim /etc/keepalived/keepalived.conf #修改一手
image 2 2
#编写haproxt状态检测脚本(两台机子都做)
[root@haproxy_master ~]#  vim /etc/keepalived/check_haproxy.sh

#!/bin/bash echo "check haproxy" HA=`ps -C haproxy --no-header |wc -l `   if [ $HA -eq 0 ];then   #判断haproxy的进程是存在,0无haproxy进程,则haproxy宕机    systemctl stop keepalived fi  

[root@haproxy_master ~]#  chmod +x /etc/keepalived/check_haproxy.sh

3.安装web(web1 web2)

#安装httpd
Yum -y install htppd

#编写配置文件

[root@haproxy_web1 ~]#  echo "server1" >  /var/www/html/index.html

[root@haproxy_web1 ~]# systemctl start httpd

You have new mail in /var/spool/mail/root

[root@haproxy_web1 ~]# curl 127.0.0.1

server1

[root@haproxy_web2 ~]# echo "server2" >  /var/www/html/index.html

[root@haproxy_web2 ~]# systemctl start httpd

You have new mail in /var/spool/mail/root

[root@haproxy_web2 ~]# curl 127.0.0.1

server2

4.安装haproxy(master和backup)

#安装haproxy(两台机子都做)
yum -y install haproxy
#修改配置文件
[root@haproxy_master ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.abk

[root@haproxy_backup ~]# cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.abk

[root@haproxy_master ~]# vim /etc/haproxy/haproxy.cfg

[root@haproxy_master ~]# scp /etc/haproxy/haproxy.cfg 172.10.10.101:/etc/haproxy/haproxy.cfg
listen stats    
bind  0.0.0.0:880    
stats  enable    
stats  uri  /status    
stats  auth admin:123 # 访问方式: VIP:880    
stats  refresh  

frontend  web_in    
bind 0.0.0.0:80    
use_backend web  

backend web    
balance     roundrobin    
server  web1 172.10.10.102:80 check  weight 2
server  web2 172.10.10.103:80 check  weight 8
image 2 3
image 2 4

5.测试

#ip飘逸测试+关闭haproxy
[root@haproxy_master ~]# systemctl restart keepalived  #记得适用status命令查看一手有没有启动

[root@haproxy_backup ~]# systemctl restart keepalived  #记得适用status命令查看一手有没有启动

#查看访问

[root@haproxy_bakup ~]# for ((i=1;i<=10;i++));do curl 172.10.10.200 ;done

注意:此时172.10.10.200 在master端

image 2 5

[root@haproxy_master ~]# systemctl stop haproxy   #主机端关闭haproxy
[root@haproxy_master ~]# ip a
image 2 6
[root@haproxy_master ~]# ip a
image 2 7
[root@haproxy_master ~]# for ((i=1;i<=10;i++));do curl 172.10.10.200 ;done #访问
image 2 8

#成功!

#master启动haproxy

[root@haproxy_bakup ~]# systemctl start haproxy
image 2 9
文末附加内容
上一篇