在测试了Nginx+Keepalived的负载均衡后,也对Haproxy+Keepalived双主模式做了测试,双主的模式充分利用了服务器资源,这样不会导致服务器浪费。 这里举例说明:
默认情况下,第一台负载均衡器主要分发 www.breaklinux的请求,第二台负载均衡器主要分发img.breaklinux.com 的请求。
任意一台宕机都不会影响网站分发。

实验环境

VIP1=192.168.137.200 (www.zhirs.com)
VIP2=192.168.137.100 (img.zhirs.com)
haproxy01=192.168.137.254
haproxy02=192.168.137.253
web1=192.168.137.201
web2=192.168.137.202
img1=192.168.158.101
img2=192.168.158.102

架构图

 
安装配置过程

1、安装配置过程,(两台Haproxy的安装配置步骤一样)

haproxy下载地址:http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz

cd /usr/local/src
#wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.24.tar.gz
#tar xf haproxy-1.4.24.tar.gz
#cd haproxy-1.4.24
#make TARGET=linux26 ARCH=x86_64
#TARGET是指定内核版本,ARCH指定CPU架构,我使用的是64bit系统
#make install

2、安装完毕后,创建配置文件和启动文件

#mkdir /etc/haproxy
#cp examples/haproxy.cfg /etc/haproxy
#cp examples/haproxy.init /etc/init.d/haproxy
#chmod +x /etc/init.d/haproxy
#ln -s /usr/local/sbin/haproxy /usr/sbin/
#mkdir /usr/share/haproxy

3、编辑配置文件(两台Haproxy配置文件相同)

#vim /etc/haproxy/haproxy.cfg
# this config needs haproxy-1.1.28 or haproxy-1.2.1
global
    log 127.0.0.1   local0  #日志输出配置,所有日志都记录在本机,通过local0输出
    log 127.0.0.1   local1 notice
    #log loghost    local0 info
    maxconn 4096                #最大连接数
    chroot /usr/share/haproxy   #改变当前工作目录。
    uid 99                  #所属用户的uid
    gid 99                  #所属运行的gid
    daemon                  #以后台形式运行haproxy
    #debug
    #quiet
defaults
    log global
    mode    http
  #默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK
    option  httplog
    option  dontlognull
    option   redispatch
  #当serverId对应的服务器挂掉后,强制定向到其他健康的服务器
    option  abortonclose
  #当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
    retries 3               #两次连接失败就认为是服务器不可用
    maxconn 2000            #默认的最大连接数
  #timeout http-keep-alive 10s
  # timeout queue 1m
    contimeout  5000        #连接超时
    clitimeout  50000       #客户端超时
    srvtimeout  50000       #服务器超时
    timeout check 5s            #心跳检测超时
    stats refresh 30s           #统计页面自动刷新时间
    stats uri  /stats           #统计页面url
    stats realm baison-test-Haproxy         #统计页面密码框上提示文本
    stats auth admin:admin123           #统计页面用户名和密码设置
    stats hide-version                  #隐藏统计页面上HAProxy的版本信息
frontend www
    bind *:80
    #这里建议使用bind *:80的方式,要不然做集群高可用的时候有问题,vip切换到其他机器就不能访问了。
    acl web hdr(host) -i www.zhirs.com
    #acl后面是规则名称,-i是要访问的域名,如果访问www.zhirs.com这个域名就分发到下面的webserver 的作用域。
    acl img hdr(host) -i img.zhirs.com
    #如果访问img.baison.com.cn就分发到imgserver这个作用域。
    use_backend webserver if web
    use_backend imgserver if img
backend webserver             #webserver作用域
    mode http
    balance   roundrobin     
    #banlance roundrobin 轮询,balance source 保存session值,支持static-rr,leastconn,first,uri等参数
    option  httpchk /index.html
    #检测文件,如果分发到后台index.html访问不到就不再分发给它
    server     web01 192.168.137.201:80  check inter 2000 fall 3 weight 30
   server     web01 192.168.137.202:80  check inter 2000 fall 3 weight 20
   server     web01 192.168.137.203:80  check inter 2000 fall 3 weight 10
backend imgserver
    mode http
    option  httpchk /index.php
    balance     roundrobin                         
    server      img01 192.168.137.101:80  check inter 2000 fall 3
    server      img02 192.168.137.102:80  check inter 2000 fall 3

#service haproxy start


##########################install keepalived#################################

5、安装配置keepalived(两台keepalived安装步骤一样)

#cd /root/software
#wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.33.tar.gz
#tar -zxvf pcre-8.33.tar.gz
#cd pcre-8.33
#./configure
#make && make install
#wget http://nginx.org/download/nginx-1.2.9.tar.gz
#tar -zxvf nginx-1.2.9.tar.gz
#cd nginx-1.2.9
#./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module --with-http_gzip_static_module
#make && make install

6、第一台keepalived配置文件。第一台做192.168.137.200vip的master,192.168.137.100的backup。

#vim /etc/keepalived/keepalived.conf
global_defs {
   notification_email {
     admin@centos.bz
   }
   notification_email_from keepalived@domain.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_http_port {
                #script "/opt/nginx_pid.sh"
                script "/opt/check_haproxy.sh"
                interval 2
                weight 2
}
vrrp_instance VI_1 {
    state MASTER        ############ 辅机为 BACKUP
    interface eth0
    virtual_router_id 51
    mcast_src_ip 192.168.137.254
    priority 100                  ########### 权值要比 back 高
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
track_script {
        chk_http_port ### 执行监控的服务
        }
    virtual_ipaddress {
       192.168.137.200
    }
}
vrrp_instance VI_2 {
    state BACKUP
    interface eth0
    virtual_router_id 52
    priority 99
    advert_int 1
    authentication {
         auth_type PASS
         auth_pass 1111
    }
    virtual_ipaddress {
        192.168.137.100 
         }

}


7、第二台keepalived的配置文件。


#vim /etc/keepalived/keepalived.conf
global_defs {
   notification_email {
     admin@centos.bz
   }
   notification_email_from keepalived@domain.com
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_script chk_http_port {
                #script "/opt/nginx_pid.sh"
                script "/opt/check_haproxy.sh"
                interval 2
                weight 2
}
vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    mcast_src_ip 192.168.137.253
    priority 99             ##########权值 要比master低
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
track_script {
        chk_http_port
        }
    virtual_ipaddress {
       192.168.137.200
    }
}
    }
}
vrrp_instance VI_2 {
    state MASTER
    interface eth0
    virtual_router_id 52
    priority 100
    advert_int 1
    authentication {
         auth_type PASS
         auth_pass 1111
    }
    virtual_ipaddress {
        192.168.137.100

         }

}

//==============检测脚本,为了防止haproxy服务关闭导致keepalived不自动切换#####

#vim /opt/check_haproxy.sh
#!/bin/bash
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
     /etc/init.d/haproxy  start
fi
sleep 2
if [ $(ps -C haproxy --no-header | wc -l) -eq 0 ]; then
       /etc/init.d/keepalived stop
fi

##############################################################################

9、启动两台keepalived和Haproxy服务。

#servcie haproxy start

#service keepalived start

################################测试方案#############################################

10、查看两台服务器的VIP 查看
查看192.168.137.254:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:dc:01:3e brd ff:ff:ff:ff:ff:ff
inet 192.168.137.254/24 brd 192.168.137.255 scope global eth0
inet 192.168.137.200/32 scope global eth0

查看192.168.137.253:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 00:0c:29:d5:e7:3d brd ff:ff:ff:ff:ff:ff
inet 192.168.137.253/24 brd 192.168.137.255 scope global eth0
inet 192.168.137.100/32 scope global eth0
inet6 fe80::20c:29ff:fed5:e73d/64 scope link
valid_lft forever preferred_lft forever

11、测试,关闭任意一台keepalived,img和www域名访问正常。 后续会对Nginx+Keepalived 双主结果做测试。

########################################################################################

转载于:https://blog.51cto.com/breaklinux/1611882

Hapoxy+keepalived实现双主高可用负载均衡相关推荐

  1. ngnix+keepalived 实现N主高可用负载均衡web群集

    ngnix+keepalived 实现N主高可用负载均衡web群集 思路: 总结一下最近学习的nginx+keepalived 的负载均衡架构,发现linux的群集系统都是负载均衡层加服务器群组层,实 ...

  2. keepalive+nginx实现负载均衡高可用_超详细的LVS+keepalived+nginx实现高性能高可用负载均衡集群教程...

    概述 前面已经介绍了前两部分内容,下面主要介绍在nginx服务器方面的配置和测试整个集群是否可用. 在realserver端配置VIP 1.两台nginx服务器都要执行下面脚本: #vi /etc/r ...

  3. Keepalived+LVS-DR模式配置高可用负载均衡集群

    环境: 虚拟机:VMware Workstation 操作系统:CentOS 5.5 一.keepalived+lvs-DR模式配置高可用负载均衡 拓扑如下: 二.服务器ip配置信息 1. ip_lb ...

  4. haproxy负载均衡_基于mycat+haproxy+keepalived搭建mysql数据库高可用负载均衡

    概述 目前业界对数据库性能优化普遍采用集群方式,而oracle集群软硬件投入昂贵,mysql则比较推荐用mycat去搭建数据库集群,下面介绍一下怎么用mycat+haproxy+keepalived搭 ...

  5. 在Linux基于Keepalived搭建LVS实现高可用负载均衡

    文章目录 前言 搭建步骤 配置真实服务器(RS) 配置负载均衡服务器(DS主) 配置负载均衡服务器(DS备) 测试 查看DS主备配置 访问VIP验证负载均衡 查看虚拟路由冗余协议(VRRP)数据包 验 ...

  6. keepalived+mysql双主高可用配置

    具体架构图如下 两个节点一主一从(从库上面也可以再挂一个从库),或者是双主,再利用keepalived在出现容灾时进行高可用切换. Keepalived原理说明: 其实这个原理可以很简单的用一个故事说 ...

  7. linux 跨物理 集群,linux学习之使用keepalived结合lvs搭建高可用负载均衡集群

    环境如下: 192.168.2.199 vm1.example.com HA主服务器 192.168.2.202vm2.example.com HA备服务器 192.168.2.205vm3.exam ...

  8. Keepalived+Nginx实现高可用负载均衡集群

    转载自 https://www.cnblogs.com/mrlapulga/p/6857294.html 一 环境介绍 1.操作系统 CentOS Linux release 7.2.1511 (Co ...

  9. Linux 笔记 - 第十八章 Linux 集群之(三)Keepalived+LVS 高可用负载均衡集群

    一.前言 前两节分别介绍了 Linux 的高可用集群和负载均衡集群,也可以将这两者相结合,即 Keepalived+LVS 组成的高可用负载均衡集群,Keepalived 加入到 LVS 中的原因有以 ...

最新文章

  1. 建立与ftp服务器的连接——完成版(java)
  2. linux shell 脚本嵌套调用 获取脚本自身文件名
  3. umask命令:设置文件的默认权限掩码
  4. oracle十进制函数语法,Oracle 十进制、二进制互相转换自定义函数
  5. 解释一下全连接层CNN中全连接层是什么样的
  6. SQL Server 查询数据表数据
  7. 个人知识管理系统Version1.0开发记录(07)
  8. user.php act profile,user.php
  9. displaytag手册
  10. 明解C语言(第3版)入门篇 - 第六章练习题解
  11. 现代检测技术-测量误差和处理
  12. (附源码)计算机毕业设计ssm房屋租赁管理系统设计
  13. 原生开发什么意思_原生开发和混合开发的优劣势都是什么?
  14. writeUP-[第五空间2019 决赛]PWN5(待进一步完善待研究内容)
  15. 赵小楼《天道》《遥远的救世主》深度解析(35)你觉得叶晓明、冯世杰、刘冰是底层吗?
  16. 字句解 (易經大意 韓長庚)
  17. springboot properties
  18. Java并发编程系列之二十四:Exchanger
  19. ffmpeg+easydarwin把rtmp流转换成m3u8
  20. 计算机一级考试试题excel,计算机一级考试模拟题(word、excel、ppt以及基础知识);...

热门文章

  1. java xpdf 转换成html_java将Word/Excel/PDF文件转换成HTML整理
  2. html5 网页游戏论文,JavaScript编写的网页小游戏,很给力
  3. 计算机综合应用能力试题,计算机综合应用能力实训
  4. cglib动态代理导致注解丢失问题及如何修改注解允许被继承
  5. 3 5的二维数组C语言程序,C语言及程序设计提高例程-33 二维数组元素的引用
  6. react同步请求_React中setState同步更新策略
  7. 定时器和promise_从Promise链理解EventLoop
  8. python解析html xml最好的模块_Python HTML/XML解析器BeautifulSoup(爬虫解析器)
  9. HTML多选mysql,html多选下拉框 | 学步园
  10. plsql视图添加表字段_Oracle-单表多字段查询(不使用*)