小雪崩 发表于 2018-12-31 11:50:05

用haproxy搭建web群集并由keepalived 实现双机热备

        搭建haproxy+keepalived高可用群集。

  一、案例概述
  1.haproxy是目前比较流行的一种集群调度工具,是一款免费开源的软件,并且具有一定得安全性;haproxy较适用于负载较大的web节点,并且支持数万的并发量。同类调度工具还有很多,如LVS和Nginx。相比较而言,LVS性能最好,但是搭建相对复杂,Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,性能没有haproxy好。haproxy主要实现web群集的负载均衡haproxy官方网站:http://haproxy.1wt.eu/。
  2.负载均衡调度算法:
      ①.RR(Round Robin):轮询,根据节点权重依次分配访问请求。

      ②.LC(Least Connect):最小连接数算法,根据节点的连接数量分配访问请求,每次将连接请求分配给连接数量最小的客户端。是目前用的较多的一种算法。

      ③.SH(Source Hashing):基于来源访问调度算法。可基于ip、cookies等做集群调度,比如ip1第一次访问时被指派到A站点,ip2访问被指派到B站点,那么以后的每次ip1都会被指派到A站点,ip2被指派到B站点。若某个IP访问量较大时,就会给节点造成很大的压力。
  3.案例环境:
  http://s5.运维网.com/wyfs02/M01/8A/03/wKiom1gj58vTt7c0AAAGngECh8g526.png-wh_500x0-wm_3-wmp_4-s_1539231999.png
  二、编译安装haproxy(这里拿主haproxy服务器举例)

  1.先用yum安装支持haproxy的开发包
  http://s4.运维网.com/wyfs02/M00/8A/04/wKiom1gj6pSR1YoyAAAVqSm3VUY539.png-wh_500x0-wm_3-wmp_4-s_2716620236.png
  2..编译安装haproxy。

  http://s5.运维网.com/wyfs02/M00/8A/04/wKiom1gj7JLwH3n8AAAMIKdl_PI473.png-wh_500x0-wm_3-wmp_4-s_3869072811.png这里的Linux26指64位操作系统。
  3.配置haproxy服务器
  
  需手动建立haproxy的配置文件目录,将haproxy.cfg文件复制到刚才手动建立的配置文件目录下。
http://s4.运维网.com/wyfs02/M01/8A/04/wKiom1gj7buD7MyXAAAJJn4Ncd0390.png-wh_500x0-wm_3-wmp_4-s_3838522332.png
  4.修改haproxy配置文件

  
  haproxy通常分为三部分(global:全局配置,defaults:默认配置,listen:应用模块配置)
  首先修改全局配置:http://s3.运维网.com/wyfs02/M02/8A/04/wKiom1gj84bQviEjAACpa6F-sO4169.jpg-wh_500x0-wm_3-wmp_4-s_142082311.jpg
  

  

  

  

  

  其次为默认配置:
http://s5.运维网.com/wyfs02/M02/8A/01/wKioL1gj86vgCk-cAAAXkjdPQ_E025.png-wh_500x0-wm_3-wmp_4-s_3195656640.png
  

  

  最后为应用模块配置:
http://s5.运维网.com/wyfs02/M00/8A/05/wKiom1gj8_jyeQbUAAAX7JiTrf4981.png-wh_500x0-wm_3-wmp_4-s_3968121007.png
  

  保存退出即可。
  5.创建自启动脚本
           http://s4.运维网.com/wyfs02/M01/8A/01/wKioL1gj9OuQMMdZAAAdl3LWKFc002.png-wh_500x0-wm_3-wmp_4-s_1654002894.png
  三.测试web群集
  1.建立测试网页   http://s5.运维网.com/wyfs02/M00/8A/05/wKiom1gj923RXrGIAAAKr5s_kuA981.png-wh_500x0-wm_3-wmp_4-s_771027046.png
  启动apache服务

http://s2.运维网.com/wyfs02/M01/8A/01/wKioL1gj93fCetpjAAAWv51xbp0870.png-wh_500x0-wm_3-wmp_4-s_788597791.png

  2.测试第一次显示的页面为web1的网页
http://s3.运维网.com/wyfs02/M01/8A/01/wKioL1gj-ejjfULBAAAbFxaqsCU191.png-wh_500x0-wm_3-wmp_4-s_1546644091.png
  第二次显示的为web2的网页
http://s4.运维网.com/wyfs02/M01/8A/05/wKiom1gj-gKhDxFYAAAabihW00M893.png-wh_500x0-wm_3-wmp_4-s_1206844562.png
  四、haproxy的高可用


[*]  安装支持软件
  yum -y install kernel-devel openssl-devel popt-devel ipvsadm
  2.编译安装keepalived并将keepalived添加为系统服务
  
      cd /usr/src/keepalived-1.2.13/
      ./configure --prefix=/ --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64/ && make && make install
      ls -l /etc/init.d/keepalived
      chkconfig --add keepalived
  3.使用keepalived实现双机热备
  首先配置主调度器即主haproxy(/etc/keepalived/keepalived.conf)
  修改keepalived配置文件:
http://s4.运维网.com/wyfs02/M01/8A/06/wKiom1gkD3fT01wRAAA4Bzr6_kU527.png-wh_500x0-wm_3-wmp_4-s_4167930427.png
http://s2.运维网.com/wyfs02/M01/8A/06/wKiom1gkD5HQ7BEeAAAnuNPvj3k501.png-wh_500x0-wm_3-wmp_4-s_3063660265.png
  2.配置从调度器
http://s4.运维网.com/wyfs02/M01/8A/02/wKioL1gkD8mzKEMkAAAta2GeBG8385.png-wh_500x0-wm_3-wmp_4-s_218635770.png
  3.配置完后重启keepalived
http://s4.运维网.com/wyfs02/M00/8A/02/wKioL1gkETaSXQYBAAAoWNBY8Oo181.png-wh_500x0-wm_3-wmp_4-s_182606626.png
  4.用客户端通过群集浏览网页。效果如下:
  (由于地址冲突,把群集IP改为192.168.1.20)
http://s3.运维网.com/wyfs02/M02/8A/06/wKiom1gkGy2z2ILKAAAihhh3E5o171.png-wh_500x0-wm_3-wmp_4-s_3749405152.png
http://s3.运维网.com/wyfs02/M01/8A/06/wKiom1gkGy6zuCb4AAAzHXJuSIs197.jpg-wh_500x0-wm_3-wmp_4-s_327793648.jpg
  将主haproxy的网卡断开后客户端依然可以正常访问。
  

  注:作者知识有限,希望大家提出宝贵的意见!
  

  



页: [1]
查看完整版本: 用haproxy搭建web群集并由keepalived 实现双机热备