千家信息网

keepalived+haproxy高可用

发表于:2024-10-19 作者:千家信息网编辑
千家信息网最后更新 2024年10月19日,环境:主Haproxy服务器 192.168.80.100 keepalived+Haproxy备Haproxy服务器 192.168.80.101 keepalived+Hapr
千家信息网最后更新 2024年10月19日keepalived+haproxy高可用
环境:主Haproxy服务器    192.168.80.100   keepalived+Haproxy备Haproxy服务器    192.168.80.101   keepalived+Haproxyweb服务器1             192.168.80.102  httpd(nginx、tomcat)web服务器2             192.168.80.103  httpd80.100和80.101需要联网

---------------------------------------
在80.100虚拟机上:

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

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

yum install keepalived -y         //安装keepalivedcd       //回到根目录
vi /etc/keepalived/keepalived.conf`删除所有内容并添加以下内容:! Configuration File for keepalivedglobal_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中yesroot密码

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/           
源码编译安装haproxyyum install -y \pcre-devel \bzip2-devel \gcc \gcc-c++ \make
make TARGET=linux26  PREFIX=/usr/local/haproxy    //标识64为系统make install PREFIX=/usr/local/haproxymkdir /etc/haproxy          //创建目录cduseradd -M -s /sbin/nologin haproxyid  haproxy

cd /opt/haproxy-1.5.15/cp examples/haproxy.cfg /etc/haproxy
vi /etc/haproxy/haproxy.cfg修改以下内容:#       chroot /usr/share/haproxy        注释这一行uid 1000gid 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 30sweb服务器/终端listen webcluster        bind 0.0.0.0:80        mode http        option httpchk GET /index.html        log global        maxconn 3000        balance roundrobinserver web01 192.168.80.102:80 check inter 2000 fall 5server web02 192.168.80.103:80 check inter 2000 fall 5:wq


cd /opt/ls

vi haproxy.sh#!/bin/bashif [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then        /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg      启动haproxy服务fisleep 2     等待2秒if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ];then        service keepalived stopfi   :wq        //保存退出

chmod +x /opt/haproxy.sh       //给这个文件设置权限cd /opt/haproxy-1.5.15/cp examples/haproxy.init /etc/init.d/haproxychmod +x /etc/init.d/haproxyll /etc/init.d/haproxychkconfig --add haproxyln -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 stopnetstat -anpt | grep haproxysystemctl start keepalivedip addr show ens32netstat -anpt | grep haproxy


--------------------------------------
在80.101虚拟机上:

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

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

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

修改成以下内容:

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

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

ls /etc/haproxy/cp examples/haproxy.init /etc/init.d/haproxychmod +x /etc/init.d/haproxy             //给这个文件设置权限chkconfig --add haproxyln -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 startelse        service haproxy stopfi   :wq
chmod +x haproxy.sh         //设置权限ll                          systemctl start keepalived     ip addr show ens32netstat -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.htmlsystemctl 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.htmlsystemctl start httpd //启动服务
在网页上输入192.168.80.103

0