一、环境介绍

我用的是centos6.7,内核版本为2.6.32-573.el6.x86_64,keepalived版本为keepalived-1.2.22,haproxy版本为haproxy-1.6.4

# yum install libnl* popt* openssl openssl-devel -y

下载并安装ipvsadm-1.26  、libnfnetlink-1.0.1、   libnfnetlink-devel-1.0.1

html-A IP 192.168.1.41

html-B IP 192.168.1.59

haproxy_master 192.168.1.240   主

haproxy_backup 192.168.1.92     备

VIP(virtual IP) 192.168.1.180

二、在192.168.1.240和192.168.1.92上安装Keepalived

1.下载keepalived    http://www.keepalived.org/download.html

2.安装

#tar -zxvf keepalived-1.2.22.tar.gz
        #ln -s /usr/src/kernels/2.6.32-573.el6.x86_64/ /usr/src/linux
        #cd keepalived-1.2.22
    #./configure --prefix=/ --mandir=/usr/local/share/man/ --with-kernel-dir=/usr/src/kernels/2.6.32-573.el6.x86_64/
    #make

#make install
    #cd /etc/keepalived/
    #mv keepalived.conf keepalived.conf.default

3.编写配置文件

#vim   keepalived.conf

! Configuration File for keepalived

vrrp_script chk_http_port {
         script "/etc/keepalived/check_haproxy.sh"
         interval 2
         weight 2

    global_defs {

#设置邮件报警,可以不设

#  notification_email {
            #  wt@123.com
            #  }
            # notification_email_from wt@123.com
            #  smtp_server 192.168.1.100       #邮件服务器IP
            #  smtp_connect_timeout 30

         router_id LVS_DEVEL
    }
    vrrp_instance VI_1 {
         state MASTER #192.168.1.92上改为BACKUP
         interface eth0
         virtual_router_id 51
         priority 150 #192.168.1.92上改为120
         advert_int 1
         authentication {
             auth_type PASS
             auth_pass 1111
         }

         track_script {
             chk_http_port
         }

         virtual_ipaddress {
             192.168.1.180
         }
   }
   }

4.编写keepalived自启动脚本

#vim  /etc/keepalived/check_haproxy.sh

#!/bin/bash
   A=`ps -C haproxy --no-header |wc -l`
   if [ $A -eq 0 ];then
   /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
   sleep 3
   if [ `ps -C haproxy --no-header |wc -l` -eq 0 ];then
   /etc/init.d/keepalived stop
   fi
   fi

赋予脚本执行权限
      #chmod 755 /etc/keepalived/check_haproxy.sh   该脚本可保证haproxy程序意外挂掉时重新启动程序

三、在192.168.1.240和192.168.1.92上安装Haproxy

1.下载Haproxy http://download.csdn.net/detail/a15134566493/9521419

2.安装配置

#tar -zxvf haproxy-1.6.2.tar.gz
        #cd haproxy-1.6.2

# make TARGET=linux26 PREFIX=/usr/local/haproxy install

    #cd /usr/local/haproxy/

# mkdir conf logs

#cd conf/

# vim haproxy.cfg

######## 全局配置信息 #########
######参数是进程级的,通常和操作系统相关#######

   global
    log 127.0.0.1 local3 info #日志服务器
    maxconn 4096 #最大连接数
    uid nobody #用户身份
    gid nobody #组身份
    daemon #守护进程方式后台运行
    nbproc 1 #工作进程数量

####### 默认设置 ###################
#####这些参数是配置 frontend,backend,listen 组的 ###########
   defaults
    log global
    mode http #工作模式 http ,tcp 是 4 层,http是 7 层
    maxconn 2048 #最大连接数
    retries 3 #3 次连接失败就认为服务器不可用
    option redispatch #如果 cookie 写入了 serverId 而客户端不会刷新 cookie,当serverId 对应的服务器挂掉后,强制定向到其他健康的服务器
    stats uri  /haproxy #使用浏览器访问 http://192.168.1.240/haproxy,可以看到服务器状态
    contimeout 5000
    clitimeout 50000
    srvtimeout 50000

   frontend http-in
    bind 0.0.0.0:80
    mode http
    log global
    option httplog #日志类别 http 日志格式
    option httpclose #打开支持主动关闭功能
       #acl php url_reg  -i  \.php$ #acl <ACL名字>  <类型>  <大小写>  <规则>  有PHP网页就取消注释
       acl html url_reg  -i  \.html$  
#use_backend  <服务器组>  if  <ACL名字>
       #use_backend php-server if  php         有PHP网页就取消注释
       use_backend html-server if  html
       default_backend html-server
#默认使用的服务器组

        ######以下注释的是PHP的配置,没有PHP网页可以不写这个配置#############
   #backend php-server
    #mode http
    #balance roundrobin #负载均衡的方式
    #option httpchk GET /index.php #健康检查
    cookie SERVERID insert indirect nocache #客户端的 cookie 信息
    #server php-A 192.168.1.30:80 weight 1 cookie 1 check inter 2000 rise 2 fall 5
    #server php-B 192.168.1.40:80 weight 1 cookie 2 check inter 2000 rise 2 fall 5
    #cookie 1 标识 serverid 为 1
    #check inter 2000 检测心跳频率
    #rise 2 2 次正确认为服务器可用
    #fall 5 5 次失败认为服务器不可用

   backend html-server
    mode http
    balance roundrobin
    option httpchk GET /index.html
    cookie SERVERID insert indirect nocache
    server html-A 192.168.1.41:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5
    server html-B 192.168.1.59:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5 
3.启动HAproxy
           # /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg

4.查看HAproxy状态

由于使用了keepalived虚拟主机,所以可访问192.168.1.180/haproxy查看HAproxy状态

四、搭建网页服务器

1.# yum install httpd -y

2.在/var/www/html/目录下创建index.html,

在192.168.1.41的index.html中写  i am 192.168.1.41

在192.168.1.59的index.html中写  i am 192.168.1.59

3.#service httpd restart

5.在客户端访问 HAproxy 测试

           在浏览器访问192.168.1.180即可访问。其显示的网页内容实际上是192.168.1.41或192.168.1.59的网页。

           实际效果:

          

keepalived+haproxy构建高可用负载均衡的更多相关文章

  1. Keepalived+HAProxy 搭建高可用负载均衡

    转载自:https://mp.weixin.qq.com/s/VebiWftaRa26x1aA21Jqww 1. 概述 软件负载均衡技术是指可以为多个后端服务器节点提供前端IP流量分发调度服务的软件技 ...

  2. Keepalived+HAproxy实现高可用负载均衡

    总概:       Keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层.第4层和第5层交换.Keepalived的作用是检测web服务器的状态, ...

  3. Keepalived+Haproxy搭建高可用负载均衡

    Keepalived 简单的是一个路由的软件用C写的这个项目的主要目标是提供简单而强大的设施的负载均衡和高可用性对Linux系统和基于Linux的基础设施.负载均衡架构依赖于众所周知的和广泛使用的Li ...

  4. 【线上测试之后的应用】基于MySQL+MHA+Haproxy构建高可用负载均衡数据库集群(详解)

    这里我们先介绍一下MHA是什么,其次就是它的应用与测试,同时为了大家呈现了数据备份案例,最后总结了使用情况以及注意事项和解决办法 一.MHA 概述 MHA(Master High Availabili ...

  5. docker下用keepalived+Haproxy实现高可用负载均衡集群

    启动keepalived后宿主机无法ping通用keepalived,报错: [root@localhost ~]# ping 172.18.0.15 PING () bytes of data. F ...

  6. Haproxy+Keepalived搭建Weblogic高可用负载均衡集群

    配置环境说明: KVM虚拟机配置 用途 数量 IP地址 机器名 虚拟IP地址 硬件 内存3G  系统盘20G cpu 4核 Haproxy keepalived 2台 192.168.1.10 192 ...

  7. LVS+Keepalived搭建MyCAT高可用负载均衡集群

    LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...

  8. CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

    一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...

  9. 转载--CentOS 6.3下部署LVS(NAT)+keepalived实现高性能高可用负载均衡

    源地址:http://www.cnblogs.com/mchina/archive/2012/08/27/2644391.html 一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台: ...

随机推荐

  1. sqlmap注入检测经验0x01

    某日偶遇一SQLInjection Point,MSSQL 2008,已开启显错模式. 马上扔进SQLMap跑,一路顺畅,竟然还是SA的权限,心想运气真好,无论如何都拿定了. 数据库,表,列都列出来了 ...

  2. java语言一维数组,对象数组

    /** * 对象数组的使用 */package com.test5; import java.io.BufferedReader;import java.io.InputStream;import j ...

  3. CLR 公共语言运行库

    1..支持多语言..只是语言是面向CLR的..均可以在此基础上运行. 2..程序集加载..程序打包之后的Dll文件由CLR(公共语言运行库)来编译并加载到可以执行状态..由CLR(公共语言运行库)加载 ...

  4. jQuery里$(this)和this的区别在哪?

    $(this)是jquery对象,能调用jquery的方法,例如click(), keyup().而this,则是html元素对象,能调用元素属性,例如this.id,this.value.例如假设已 ...

  5. safari 回调中window.open无法执行

    safari无法在callback中执行window.open,其安全机制将其阻挡了. 解决方法: var oWinRef = win.open('','_blank','参数');fCallback ...

  6. 用Redis实现分布式锁 与 实现任务队列(转)

    这一次总结和分享用Redis实现分布式锁 与 实现任务队列 这两大强大的功能.先扯点个人观点,之前我看了一篇博文说博客园的文章大部分都是分享代码,博文里强调说分享思路比分享代码更重要(貌似大概是这个意 ...

  7. CSS样式表继承详解

    最近在恶补css样式表的基础知识.上次研究了css样式表之冲突问题详解 .这次是对 css 继承 特性的学习. 什么是css 继承?要想了解css样式表的继承,我们先从文档树(HTML DOM)开始. ...

  8. QS2016年全球高等教育系统实力排名 中国排名世界第八亚洲第一

    2016年5月18日,QS发布"2016年全球高等教育系统实力排名",中国在此榜单表现优异,排名世界第八亚洲第一. 排名指标 排名指标及计算方法如下: 系统实力:QS大学排名前70 ...

  9. ML_R Kmeans

    Kmeans作为机器学习中入门级算法,涉及到计算距离算法的选择,聚类中心个数的选择.下面就简单介绍一下在R语言中是怎么解决这两个问题的. 参考Unsupervised Learning with R ...

  10. BSA基础数据维护

    平台 BSA基础数据维护 .扇区五个字段的内容 本来值为0,经过107上计算解析,得出正常的数值.然后106上报(200050),得到回复(200051). 查看回复数据,是否有错误.比如提示104 ...