准备四台虚拟其中两台用来部署httpd
另外两台虚拟机先同步网络时间
yum install ntp -y
ntpdate time1.aliyum.com
之后安装keepalived
yum install keepalived -y
到在主虚拟机keepalived主配置文件中将配置文件全部删除并加入一下配置文件
vi /etc/keepalived/keepalived.con
! Configuration File for keepalived
global_defs {
route_id haproxy-01
}
vrrp_script haproxy {
script "/opt/haproxy.sh"
interval 2
weight 2
}
vrrp_instance VI_1 {
state MASTER
interface ens32
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
haproxy
}
virtual_ipaddress {
192.168.80.188
}
}
然后将次虚拟机的以上配置文件发送到从虚拟机上
scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived/keepalived.conf
在里面更改route_id haproxy-01为route_id haproxy-02
setate MASTER改为setate BACKUP
priority150改为100
配置文件改动实在从虚拟机中进行
在主虚拟机中安装上传工具
yum install lrz* -y
haproxy安装包 将安装包拖到根目录下
https://pan.baidu.com/s/1WvKXj2F2Uww50Haa7jcG2w
从服务器也要进行同样的操作,也可以使用scp将包发送到从服务器中
scp haproxy-1.5.15.tar.gz [email protected]:/root
将包解压到/opt目录下
tar xf haproxy-1.5.15.tar.gz -C /opt
cd到/opt/ haproxy-1.5.15目录下安装环境 并编译环境,从服务器也要编译安装
yum install -y \
pcre-devel \
bzip2-devel \
gcc \
gcc-c++ \
make
make TARGET=linux26 PREFIX=/usr/local/haproxy
make install PREFIX=/usr/local/haproxy
创建配置文件mkdir /etc/haproxy
将examples/haproxy.cfg拷贝到/etchaproxy
cp examples/haproxy.cfg /etc/haproxy/
id haproxy 查看用户uid和gid
到haproxy配置文件中修改
vi /etc/haproxy/haproxy.cfg
将chroot /usr/share/haproxy注释掉
吧uid和gid该为用户对应的
将defaults之后的模块删掉,(不包括defaults模块)并加入一下配置
listen admin_stats
bind 0.0.0.0:8089
stats enable
mode http
log global
stats uri /stats
stats realm Haproxy\ Statistics
stats auth admin:admin
#stats hide-version
stats admin if TRUE
stats refresh 30s
listen webcluster
bind 0.0.0.0:80
mode http
option httpchk GET /index.html
log global
maxconn 3000
balance roundrobin
server web01 192.168.80.102:80 check inter 2000 fall 5
server web02 192.168.80.103:80 check inter 2000 fall 5(这里的IP地址为之前部署的两台httpdu虚拟机地址)
cp到opt目录下创建vi haproxy.sh
并加入一下内容
#!/bin/bash
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then
/usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg
fi
sleep 2
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then
service keepalived stop
fi
保存退出为haproxy.ch加权限并加入到程序用户中
chmod +x /opt/haproxy.sh
useradd -s /sbin/nologin -M haproxy
cd /opthaproxy-1.5.15
cpexamples/haproxy.init /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy(添加执行权限)
chkconfig --add haproxy
ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxy(软链接)
在网页中输入主服务器ip地址加:8089/stats查看是否成功
从服务器上也进行相同的操作
有一点不一样的是在vi /opt/haproxy 配置文件中加入
#!/bin/bash
#Filename:
A=$(ip addr | grep 192.168.80.188/32 | grep -v grep | wc -l)
if [ $A -gt 0 ]; then
service haproxy start
else
service haproxy stop
fi
关闭haproxy并开启keepalived
用ip add show ens33如果有192.168.80.188就是成功了