一、环境介绍

我用的是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. Effective Objective-C 2.0 — 第三条:多用字面量语法,少用与之等价的方法

    第三条:多用字面量语法,少用与之等价的方法 几个类:NSString  NSNumber  NSArray  NSDictionary 字面量语法是一种语法糖(syntactic sugar) NSS ...

  2. Android中Java与JavaScript之间交互(转)

    Android代码: package com.fyfeng.testjavascript; import android.app.Activity; import android.content.In ...

  3. 昨天的这个先补上--这个是关于 JQ 的移动 和 渐变特效的点击事件

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  4. vim查找替换

    http://www.cnblogs.com/ltang/articles/2034291.html %: 表示百分百,表示所有 行的意思... 如果不指定行号, 则表示当前行; g: 表示一行中的所 ...

  5. linux shell中判断bash脚本输入的参数个数

    看下面的一段程序. #!/bin/bash ]; then echo "参数个数为$#个" else echo "没有参数" fi

  6. java.lang.reflect.Constructor

    java.lang.reflect.Constructor 一.Constructor类是什么 Constructor是一个类,位于java.lang.reflect包下. 在Java反射中 Cons ...

  7. 推荐近期15个 Node.js 开发工具

    近来Node.js 越来月流行了,这个基于Google V8 引擎建立的平台, 用于方便地搭建响应速度快.易于扩展的网络应用.在本文中,我们列出了2015年最佳的15个 Node.js 开发工具.这些 ...

  8. LINUX下搭建VPN

    一.准备 需要 dkms-2.0.17.5-1.noarch.rpm.ppp-2.4.5-33.0.rhel6.x86_64.rpm.pptpd-1.4.0-1.el6.x86_64.rpm,并依次安 ...

  9. Codeforces #270 D. Design Tutorial: Inverse the Problem

    http://codeforces.com/contest/472/problem/D D. Design Tutorial: Inverse the Problem time limit per t ...

  10. CSS只是要点-收集

    1. CSS 浮动定位详解 请点击:css浮动定位详解