项目 调度 服务器,高可用haproxy调度后端服务器实现动静分离集群架构

项目要求:

(1) 动静分离部署wordpress,动静都要能实现负载均衡,要注意会话的问题;

(2) 设计拓扑;

(3) haproxy的设计要求:

(a) stats page,要求仅能通过本地访问使用管理接口;

(b) 动静分离;

(4) haproxy高可用;

项目需求:

(1) 要实现haproxy高可用,可利用keepalived主备高可用两个haproxy服务器;

(2)动态web集群【实现负载均衡,项目实验中使用两台即可】;

(3)静态web集群【实现负载均衡,项目实验中使用两台即可】;

使用CentOS 7.5镜像虚拟机完成项目试验:

wordpress服务器 172.16.75.1 进行NFS共享给集群

haproxy1 172.16.75.2

haproxy2 172.16.75.2

动态web集群 172.16.75.4 172.16.75.5

静态web集群 172.16.75.6 172.16.75.7

设计拓扑:

d1557e98f0a95aa979a519f01b135270.png

一、两台haproxy主配置文件配置

~]#cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bck //进行备份防止改错是吧,每次我们在更改主配置文件时最好备份

~]# vim /etc/haproxy/haproxy.cfg //两台haproxy主机设置是相同的

9729f7ecfd31f196292089959cfaa2d3.png

先将原先配置文件中maxconn这行以下的内容删除,然后添加图示内容即可;

~]# systemctl start haproxy //确保之前没有开启httpd服务,此条命令执行后ss -tnl可以看到5000端口打开,查看状态,正常开启即可

98b856f4d7104b228e407d82382cfde8.png

二、keepalive配置

haproxy1 172.16.75.3 //要保证这两台haproxy的时间是同步的,且将防火墙以及SElinux关闭

~]# hostnamectl set-hostname drct1

~]# vim /etc/keepalived/keepalived.conf

global_defs {

notification_email {br/>root@localhost

}

notification_email_from keepalived@localhost

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id drct1

vrrp_mcast_group4 224.0.100.18

}

vrrp_script check_httpd {

script "killall -0 haproxy && exit 0 || exit 1"

interval 1

weight -20

}

vrrp_instance VI_1 {

state MASTER

interface ens33

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

nopreempt

}

virtual_ipaddress {

172.16.72.1

}

notify_master "/etc/keepalived/notify.sh master"

notify_backup "/etc/keepalived/notify.sh backup"

notify_fault "/etc/keepalived/notify.sh fault"

}

[root@drct1 ~]# vim /etc/keepalived/notify.sh

case $1 in

master)

notify MASTER

;;

backup)

notify BACKUP

if ! killall -0 haproxy ; then

systemctl start haproxy

fi

;;

fault)

notify FAULT

;;

*)

echo "Usage: $(basename $0) { master | backup | fault}"

;;

esac

~]# systemctl start keepalived

8ec67edbeadeffd70f001d004b95ff7e.png

bd19403f90c3ac2644ce320da04fd8b6.png

notify_master "/etc/keepalived/notify.sh master"

notify_backup "/etc/keepalived/notify.sh backup"

notify_fault "/etc/keepalived/notify.sh fault"

}

drct2 keepalived]# vim notify.sh

#!/bin/bash

#

CONTACT='root@localhost'

notify() {

MAILSUBJECT="$(hostname) changed state to $1, VIP reflact."

MAILBODY="$(date +'%F %T'): VRRP STATUS CHANGED, $(hostname) change state to $1"

echo "$MAILBODY" | mail -s "$MAILSUBJECT" "$CONTACT"

}

case $1 in

master)

notify MASTER

;;

backup)

notify BACKUP

if ! killall -0 haproxy ; then

systemctl start haproxy

fi

;;

fault)

notify FAULT

if ! killall -0 haproxy ; then

systemctl start haproxy

fi

;;

*)

echo "Usage: $(basename $0) { master | backup | fault}"

;;

esac

然后我们这里将haproxy1服务器的keepalived宕掉 然后在haproxy2服务器中开启keepalived可以看到:

6ae7ceabe908185a652de20ecc05dc95.png

这时就证明我们所做的高可用成功了;

三、动态主机和静态主机的配置

在172.16.75.1中部署wordpress并用NFS进行共享,这里共享以及wordpress我们不再赘述,因为博主有一篇专门写共享的,不懂的可以看博主的NFS共享的博客;

动态主机中:

172.16.75.4

~]# mount -t nfs 172.16.72.1:/var/www/html /var/www/html

~]# vim /var/www/html/health.php

DynamicServer 1 is Health.

172.16.75.5

~]# mount -t nfs 172.16.72.1:/var/www/html /var/www/html

~]# vim /var/www/html/health.php

DynamicServer 2 is Health.

静态主机中:

172.16.75.6

~]# vim /var/www/html/health.html

DynamicServer 1 is Health.

172.16.75.7

~]# vim /var/www/html/health.php

DynamicServer 2 is Health.

开启http服务并进将防火墙关闭:

~]# systemctl start httpd

~]# setenforce 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值