环境:
主Haproxy服务器	   192.168.80.100	keepalived+Haproxy
备Haproxy服务器	   192.168.80.101	keepalived+Haproxy
web服务器1	            192.168.80.102	httpd(nginx、tomcat)
web服务器2	            192.168.80.103	httpd
80.100和80.101需要联网

——————————————————————————————————————— 在80.100虚拟机上:

systemctl stop firewalld        //关闭防火墙
setenforce 0                 //关闭监控
cd /etc/yum.repos.d/    //进入目录
cp back/* ./         //把back里内容移动到上一个目录
ls               //查看目录内容

yum install -y epel-release
yum install ntp -y           //安装ntp
ntpdate time1.aliyun.com        //同步网络时间
date

yum install keepalived -y         //安装keepalived
cd       //回到根目录
vi /etc/keepalived/keepalived.conf`
删除所有内容并添加以下内容:
! Configuration File for keepalived
global_defs {
        route_id haproxy-01
   }
vrrp_script haproxy {    定义一个热备脚本取名为haproxy
        script "/opt/haproxy.sh"    # 检测 haproxy 状态的脚本路径
        interval 2    # 检测时间间隔
        weight 2    # 如果条件成立,权重+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 {    # 将 track_script 块加入 instance 配置块
        haproxy    # 检查 HAProxy 服务是否存活
        }
    virtual_ipaddress {
        192.168.80.188
    }
}

:wq

scp /etc/keepalived/keepalived.conf root@192.168.80.101:/etc/keepalived/keepalived.conf      //把keepalived.conf传送到80.101中
yes
root密码

yum install lrz* -y        //安装上传软件
把haproxy软件包拉入

scp haproxy-1.5.15.tar.gz root@192.168.80.101:/root      //把haproxy软件包传送到80.101中
密码

tar xf haproxy-1.5.15.tar.gz -C /opt/          //解压haproxy软件包
cd /opt/haproxy-1.5.15/           
源码编译安装haproxy
yum install -y \
pcre-devel \
bzip2-devel \
gcc \
gcc-c++ \
make
make TARGET=linux26  PREFIX=/usr/local/haproxy    //标识64为系统
make install PREFIX=/usr/local/haproxy
mkdir /etc/haproxy          //创建目录
cd
useradd -M -s /sbin/nologin haproxy
id  haproxy

cd /opt/haproxy-1.5.15/
cp examples/haproxy.cfg /etc/haproxy
vi /etc/haproxy/haproxy.cfg
修改以下内容:
#       chroot /usr/share/haproxy        注释这一行
uid 1000
gid 1000
在default模块下
统计页面模块内容
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
web服务器/终端
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

:wq

cd /opt/
ls

vi haproxy.sh
#!/bin/bash
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then
        /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg      启动haproxy服务
fi
sleep 2     等待2秒
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then
        service keepalived stop
fi

   :wq        //保存退出

chmod +x /opt/haproxy.sh       //给这个文件设置权限
cd /opt/haproxy-1.5.15/
cp examples/haproxy.init /etc/init.d/haproxy
chmod +x /etc/init.d/haproxy
ll /etc/init.d/haproxy
chkconfig --add haproxy
ln -s /usr/local/haproxy/sbin/haproxy  /usr/sbin/haproxy     //软链接
cat /var/log/messages

service haproxy start        //启动服务

netstat -anpt | grep haproxy

在网页上输入192.168.80.100:8089/stats

scp haproxy.cfg root@192.168.80.101:/etc/haproxy/             //把haproxy.cfg 传送到80.101虚拟机上
密码

service haproxy stop
netstat -anpt | grep haproxy
systemctl start keepalived
ip addr show ens32
netstat -anpt | grep haproxy

—————————————————————————————————————— 在80.101虚拟机上:

systemctl stop firewalld        //关闭防火墙
setenforce 0                 //关闭监控
cd /etc/yum.repos.d/    //进入目录
cp back/* ./         //把back里内容移动到上一个目录
ls               //查看目录内容

yum install -y epel-release
yum install ntp -y           //安装ntp
ntpdate time1.aliyun.com        //同步网络时间
date
yum install keepalived -y         //安装keepalived
cd       //回到根目录

vi /etc/keepalived/keepalived.conf //进入成以下内容: 修改成以下内容:

ls
tar xf haproxy-1.5.15.tar.gz -C /opt/
cd /opt/haproxy-1.5.15/

源码编译安装haproxy
yum install -y \
pcre-devel \
bzip2-devel \
gcc \
gcc-c++ \
make
make TARGET=linux26  PREFIX=/usr/local/haproxy    //标识64为系统
make install PREFIX=/usr/local/haproxy
mkdir /etc/haproxy
useradd -s /sbin/nologin -M  haproxy
id  haproxy

ls /etc/haproxy/
cp examples/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     //软链接

service haproxy start        //启动服务
netstat -anpt | grep haproxy
service haproxy stop       //关闭服务
netstat -anpt | grep haproxy
cd /opt/
vi haproxy.sh
#!/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

   :wq
chmod +x haproxy.sh         //设置权限
ll                          
systemctl start keepalived     
ip addr show ens32
netstat -anpt | grep haproxy

———————————————————————————————————— 在80.102虚拟机上:

systemctl stop firewalld      //关闭防火墙
setenforce 0          //关闭监控
yum install httpd -y        //安装httpd
vi /etc/httpd/conf/httpd.conf
把ServerName www.example.com:80 前面的#删除

cd /var/www/html/       //进入这个目录
echo "server aa" > index.html
systemctl start httpd      //启动服务
在网页上输入192.168.80.102

————————————————————————————————————— 在80.103虚拟机上:

systemctl stop firewalld      //关闭防火墙
setenforce 0          //关闭监控
yum install httpd -y        //安装httpd
vi /etc/httpd/conf/httpd.conf
把ServerName www.example.com:80 前面的#删除

cd /var/www/html/       //进入这个目录
echo "server bb" > index.html
systemctl start httpd      //启动服务
在网页上输入192.168.80.103