高可用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

设计拓扑:

一、两台haproxy主配置文件配置
~]#cp /etc/haproxy/haproxy.cfg /etc/haproxy/haproxy.cfg.bck //进行备份防止改错是吧,每次我们在更改主配置文件时最好备份
~]# vim /etc/haproxy/haproxy.cfg //两台haproxy主机设置是相同的

先将原先配置文件中maxconn这行以下的内容删除,然后添加图示内容即可;
~]# systemctl start haproxy //确保之前没有开启httpd服务,此条命令执行后ss -tnl可以看到5000端口打开,查看状态,正常开启即可

二、keepalive配置
haproxy1 172.16.75.3 //要保证这两台haproxy的时间是同步的,且将防火墙以及SElinux关闭
~]# hostnamectl set-hostname drct1
~]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {br/>[email protected]
}
notification_email_from [email protected]
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
notification_email {br/>[email protected]
}
notification_email_from [email protected]
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"

}
[[email protected] ~]# vim /etc/keepalived/notify.sh

#!/bin/bashbr/>#
CONTACT=‘[email protected]‘
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
;;
*)
echo "Usage: $(basename $0) { master | backup | fault}"
;;
esac
~]# systemctl start keepalived

haproxy2 172.16.75.4 //注意文件路径呦
~]# hostnamectl set-hostname drct2
keepalived]# vim keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
br/>[email protected]
}
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id drct2
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 BACKUP
interface ens33
virtual_router_id 51
priority 90
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"

}
drct2 keepalived]# vim notify.sh

#!/bin/bash
#

CONTACT=‘[email protected]‘
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可以看到:

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

三、动态主机和静态主机的配置
在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

<h1>DynamicServer 1 is Health.</h1>
172.16.75.5
~]# mount -t nfs 172.16.72.1:/var/www/html /var/www/html
~]# vim /var/www/html/health.php

<h1>DynamicServer 2 is Health.</h1>

静态主机中:
172.16.75.6
~]# vim /var/www/html/health.html

<h1>DynamicServer 1 is Health.</h1>
172.16.75.7
~]# vim /var/www/html/health.php

<h1>DynamicServer 2 is Health.</h1>

开启http服务并进将防火墙关闭:
~]# systemctl start httpd
~]# setenforce 0

三、访问测试
访问:
http://172.16.72.1:5000/health.php并重复刷新,要保证此地址能够在客户端主技能被解析,即更改你本地客户机的host文件,添加这些地址即可;

访问:http://172.16.72.1:5000/health.html并重复刷新

访问:http://172.16.72.1:5000/wordpress

访问:http://172.16.72.1:5000/haproxy?stats //这是状态检测页面

原文地址:http://blog.51cto.com/huliheeyu/2150141

时间: 2024-10-07 19:32:04

高可用haproxy调度后端服务器实现动静分离集群架构的相关文章

高可用haproxy调度varnish服务器缓存后端动静分离集群架构

(1) 动静分离部署wordpress,动静都要能实现负载均衡,要注意会话的问题: (2) 在haproxy和后端主机之间添加varnish进行缓存: (3) 给出设计拓扑,写成博客: (4) haproxy的设定要求: (a) stats page,要求仅能通过本地访问使用管理接口:  (b) 动静分离: (c) 分别考虑不同的服务器组的调度算法: (5) haproxy高可用: 实验规划: 利用keepalived主备高可用两个haproxy服务器 对varnish缓存服务器做高可用 动态w

haproxy调度后端动静分离集群架构

项目要求: (1) 动静分离部署wordpress,动静都要能实现负载均衡,要注意会话的问题: (2) 设计拓扑: (3) haproxy的设计要求: (a) stats page,要求仅能通过本地访问使用管理接口: (b) 动静分离: 项目需求:(1) 要实现haproxy高可用,可利用keepalived主备高可用两个haproxy服务器:(2)动态web集群[实现负载均衡,实验中使用两台即可]:(3)静态web集群[实现负载均衡,实验中使用两台即可]:使用CentOS 7.5镜像虚拟机完成

keepalived高可用haproxy/nginx

前言:本文主要讲解keepalived+haproxy,等试验完成,后面会附上keepalived+nginx的思路,原理几乎相同,相信能看懂keepalived+haproxy的朋友,亦能很简单的看懂keepalived+nginx 拓扑: 准备工作: 1).高可用集群节点基于名称互相访问(两节点都需配置,略) # vim /etc/sysconfig/network # vim /etc/hosts 2).高可用集群节点ssh互信(两节点都需配置) a.com: # ssh-keygen -

案例二(构建双主高可用HAProxy负载均衡系统)

在案例一介绍HAProxy高可用负载均衡集群架构中,虽然通过Keepalived实现了HAProxy的高可用,但是严重浪费了服务器资源,因为在一主一备的Keepalived环境中,只有主节点处于工作状态,而备用节点则一直处于空闲等待状态,仅当主节点出现问题时备用节点才能开始工作.对于并发量比大的Web应用系统来说,主节点可能会非常繁忙,而备用节点则十分空闲,这种服务器资源分布不均的问题,也是在做应用架构设计时必须要考虑的问题.对于一主一备资源不均衡的问题,可以通过双主互备的方式进行负载分流,下面

简单介绍,基于ldirectord的高可用lvs-dr调度器

演示设备:物理机win7,虚拟机centos 7 DR1:node1,172.18.11.111 DR2:node2,172.18.11.112 VIP:172.18.11.200 RS1:172.18.11.11 RS2:172.18.11.12 配置高可用集群: 在DR上操作 ]# yum -y install pacemaker ]# yum install ldirectord-3.9.6-0rc1.1.1.x86_64.rpm ]# systemctl enable ldirector

HAProxy+Varnish+LNMP实现高可用负载均衡动静分离集群部署

HAProxy高可用负载均衡集群部署 基本信息: 系统平台:VMware WorkStation 系统版本: CentOS Linux release 7.2.1511 (Core) 内核版本: 3.10.0-327.el7.x86_64 集群架构: 前端:HAProxy 1.虚拟FQDN:www.simpletime.net 2.VIP:192.168.39.1:DIP:172.16.39.50 3.调度服务器:Varnish1.Varnish2 4.调度算法:URL_Hash_Consist

Keepalived高可用+HAproxy实现Nginx+wordpress动静分离

背景介绍 随着时代的更新发展,我们对于网络访问的速度,容错性,冗余性,都要不断的提高,当然提高访问资源速度的方法有很多,其中动态资源与静态资源分类也是其中的一种,这里给出如何使用Keepalived.HAproxy.Nginx.WordPress实现动.静分离的资源请求. 以HAproxy做动.静资源调度,使用Nginx做动态和静态的服务站点.使用Keepalived实现HAproxy的冗余性. 一.基础环境介绍   物理拓扑   逻辑拓扑  访问流程 动态资源: 用户请求动态资源时,通过Mas

LVS+Keepalived+IIS 配置过程高可用负载均衡web服务器

1. 基本规划 一共5个IP地址,4台服务器,两台做LVS+Keepalived高可用负载均衡,两台做Web 服务器. LVS的IP地址是: 192.168.0.181 192.168.0.182 web服务器的IP地址是 192.168.0.183 192.168.0.184 虚拟IP(VIP)地址是: 192.168.0.188 2. 配置IIS IIS上最重要的配置就是环回网卡配置,配置完成后还需要修改一下网卡的IP和工作模式.具体步骤如下 (1)配置环回网卡 打开控制面板,点击硬件,然后

借助keepalived实现高可用haproxy集群

一.环境准备 系统版本:CentOS-6.6  kernel:2.6.32-504.el6.x86_64 两个http节点: 172.16.113.13:80 172.16.113.14:80 两个haproxy节点: 172.16.13.13 172.16.13.14 keepalived双主vip: 172.16.13.1 172.16.13.2 二.网络拓扑 三.httpd安装与测试        yum install httpd -y        vim /var/www/html/