一、环境介绍

我用的是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. Lucene.Net+盘古分词->开发自己的搜索引擎

    //封装类 using System;using System.Collections.Generic;using System.Linq;using System.Web;using Lucene. ...

  2. jquery 中的事件冒泡

    废话少说,先来一段代码热热身: <!DOCTYPE html> <html> <head> <title>demo</title> < ...

  3. Java并发编程核心方法与框架-Future和Callable的使用

    Callable接口与Runnable接口对比的主要优点是Callable接口可以通过Future获取返回值.但是Future接口调用get()方法取得结果时是阻塞的,如果调用Future对象的get ...

  4. jQuery中的.bind()、.live()和.delegate()之间区别分析

    jQuery中的.bind()..live()和.delegate()之间区别分析,学习jquery的朋友可以参考下.   DOM树   首先,可视化一个HMTL文档的DOM树是很有帮助的.一个简单的 ...

  5. MySql避免重复插入记录

    今天用python抓取数据入库需要避免重复数据插入,在网上找了一些方法: 方案一:使用ignore关键字 如果是用主键primary或者唯一索引unique区分了记录的唯一性,避免重复插入记录可以使用 ...

  6. 安装opensuse的笔记-重庆linux开源组织

    mate: 伙伴 matey: 融洽的, 易于亲近的. get matey with sb. poison: a. 有毒的, n.毒药/毒酒v. 下毒, 破坏, 污染 slander [ 撕烂的~~] ...

  7. dreamwaver的动态相关文件 工具栏搜索

    dreamwaver是很好的编辑工具, 用过很多ide, 对php,js, css代码来说, dw确实是很好很方便的一个工具 php本身设置了很多的 预定义常量, 函数, 可以用来获取当前运行php的 ...

  8. PHP中spl_autoload_register()函数

    spl_autoload_register — 注册给定的函数作为 __autoload 的实现 官方地址:http://php.net/manual/zh/function.spl-autoload ...

  9. PHP简单漂亮的分页类

    本文介绍一款原生的PHP分页类,分页样式有点类似bootstrap. <?php /* * ********************************************* * @类名 ...

  10. 【转载】VC维的来龙去脉

    本文转载自 火光摇曳 原文链接:VC维的来龙去脉 目录: 说说历史 Hoeffding不等式 Connection to Learning 学习可行的两个核心条件 Effective Number o ...