微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

keepalived + haproxy 实现web 双主模型的高可用负载均衡--转

<div class="copyrightStatement lh22">原创作品,允许转载,转载时请务必以超链接形式标明文章 <a href="http://xz159065974.blog.51cto.com/8618592/1405812" target="_blank">原始出处 、作者信息和本声明。否则将追究法律责任。<a href="http://xz159065974.blog.51cto.com/8618592/1405812"&gt;http://xz159065974.blog.51cto.com/8618592/1405812

1、本文的架构图:

wKioL1Nki0jiTqeUAAE35qbWq7g043.jpg

阐述各服务器用途:

   1、haproxy在本构架中实现的是:负载均衡

   2、keepalived实现对haproxy的高可用

   3、apache static 实现静态页面的访问

   4、aoache dynamic实现动态页面的访问,图中有两个是实现负载均衡的

配置各功能模块:

   一、配置haproxy和keepalived

验证:

        1、当一台keepalived宕机后,VIP会不会转移到另外一台服务器

        2、当一台haproxy服务出故障,VIP会不会转移到另外一台服务器

注意:

        那如果keepalived宕机了,haproxy服务还正常运行,我们要不要让另外一台服务器把VIP夺过去呢?

        理论上来讲:最好不要,但是我们的keepalived中的脚本监控着haproxy的进程,keepalived宕机之后,就无从得知haproxy的健康状态,也不能决定自己的优先权priority降不降低了。所以,理论上来讲最好不要,但是实际中光靠keepalived是做不到的。

配置:

1、给两台服务器分别安装上keepalived

404_2704@_904784" class="Syntax@R_404_2704@ as3">

2、配置keepalived

404_2704@_923167" class="Syntax@R_404_2704@ as3 ">
figuration File  
发送邮件到哪个地址
    邮件
    
 
  一个局域网中有多个keepalived集群
   
   
 
 
   

3、写keepalived处在不同状态下所运行的脚本

404_2704@_95346" class="Syntax@R_404_2704@ as3">
%s'`: vrrp transition,`hostname` changed to be $1"
 
 
  

4、配置haproxy

   因为要实现动静分离,那么我们在配置文件中,就要定义动态资源静态资源转移到不同的服务上去

404_2704@_348840" class="Syntax@R_404_2704@ as3">
 
  
   
  
dispatch    #在使用了基于cookie的会话保持的时候,通常加这么一项,一旦后端某一server宕机时,能够将其会话重新派发到其它的upstream servers
  
 
PHP
           
  
   
     
IoUs backends
   
    
    
 
   
 

5、配置另外一台haproxy服务器

   因为两台服务器的配置大体相同,我们就直接讲以上配置好的复制文件和脚本文件都传到这台haproxy服务器上,做下修就可以了

404_2704@_218689" class="Syntax@R_404_2704@ as3">
     
     
     

    传输完成,接着来配置 /etc/keepalived/keepalived.conf  因为两个节点上的/etc/haproxy/haproxy.cfg相同不用更改

404_2704@_921901" class="Syntax@R_404_2704@ as3">
 
figuration File  
 
       一个低
 
    

注意:

3个状态分别要执行的脚本,只能放在 MASTER中,原因是:因为是互为主从,每个主的都会有个另外一个主的从,如果

把这 “3个状态执行脚本” 写入到从的区域中,那么另外一个主的从状态就会执行这个脚本,因为就会停掉所要高可用的

程序,这就造成了,两个VIP全部转移到其中一个服务器上去。

我们来验证下,如果keepalived和haproxy分别宕机,vip会不会转移:

   在两个节点上都启动 keepalived和haproxy服务

404_2704@_761672" class="Syntax@R_404_2704@ as3">

以下为正常情况:

keepalived 1:

wKiom1Nkl9uBLSLkAAI7Nv82x7o994.jpg

keepalived 2:

wKioL1Nkl--RJs-GAAHu-Fe95vg162.jpg

我们来模拟让第一个haproxy停止掉,再看下,VIP会不会全到 keepalived 2上面去:

404_2704@_28465" class="Syntax@R_404_2704@ as3">

查看keepalived 1 和 keepalived 2

wKioL1NksZLBURk8AAH68TIiVaw151.jpg

wKioL1NksbmgAwBPAAGZbYr2wF4250.jpg

   看,都过来了。。。。

验证负载均衡很动静分离

   我们给3个web服务不同的网页

   1、给apache static一个静态页面,来验证如果请求的不是以 .PHP结尾的网页文件都定向到这太服务器上来

   2、给apache dynamic 1 、2 分别两个 index.PHP ,实现对动态网页的负载均衡

我们给apache static 一个符合-i .jpg .gif .png .css .js的网页,就给个图片网页吧

apache static

404_2704@_218867" class="Syntax@R_404_2704@ as3">

apache dynamic 1

404_2704@_178461" class="Syntax@R_404_2704@ as3">
PHP
PHP
PHPinfo();

 apache dynamic 2 

404_2704@_905979" class="Syntax@R_404_2704@ as3">

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐