设为首页 收藏本站
查看: 1062|回复: 0

[经验分享] RHEL6配置HAProxy负载均衡集群

[复制链接]

尚未签到

发表于 2019-1-2 07:37:11 | 显示全部楼层 |阅读模式
配置HAProxy负载平衡集群
  

  实验拓扑图
  
  

  

  操作流程
         Real Server :     192.168.4.53 pc53         192.168.4.54 pc54

          配置WEB 服务器
  

          HAProxy调度器  :         192.168.4.50 pc50

          安装并启用HAProxy
           修改配置文件配置负载平衡

          

          Clinet :192.168.4.253 pc253

  连接测试        
  

具体步骤
环境准备
    配置yum源
    # service iptables stop            //关闭防火墙
    # chkconfig iptables off            //关闭开机自启
    # setenforce 0                            //设置SELinux 为宽松模


  配置WEB服务器  pc53 / pc54
  #yum -y install httpd  php
  #service httpd start
  #chkconfig httpd on
  [root@pc53 ~] #echo "   " > /var/www/html/test.php
  [root@pc54 ~] #echo "   " > /var/www/html/test.php
  

  配置HAProxy分发器  pc50
  安装并启动HAProxy
  # mount /dev/cdrom /mnt/
  RHEL6 光盘文件的LoadBalancer目录中含有HAProxy的RPM包
  在已有的yum源配置文件 上添加如下
  [LoadBalancer]
  name=LoadBalancer
  baseurl=file:///mnt/LoadBalancer
  gpgcheck=0
  

  # yum -y install haproxy
  # rpm -qa haproxy
  haproxy-1.5.4-2.el6.x86_64
  

  # rpm -qc haproxy
  /etc/haproxy/haproxy.cfg        //haproxy配置文件
  /etc/logrotate.d/haproxy
  /etc/sysconfig/haproxy
  # cp /etc/haproxy/haproxy.cfg /root/   //备份haproxy配置文件
  

  # chkconfig haproxy on//设置开机自启
  # chkconfig --list haproxy
  haproxy        0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
  

  修改HAProxy配置文件 进行配置

  HAProxy配置文件 说明
  — 命令行:总是具有最高优先级

  — global 部分:全局设置进程级别参数
  — 代理声明部分

  来自于 default, listen, frontend 和 backend

  — default 为后续的其他部分设置缺省参数,缺省参数可以被后续部分重置

  — frontend 描述接受客户端侦听套接字(socket)集

  — backend 描述转发链接的服务器集
  — listen 把frontend 和 backend 结合到一起的完整声明

  不做业务区分  修改配置文件如下
  # vim /etc/haproxy/haproxy.cfg
    global
    log         127.0.0.1 local2            
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid        //haproxy的pid存放路径
    maxconn     4000                     //最大连级数 默认4000
    user        haproxy
    group       haproxy
    daemon                               // 创建1个进程进程入deamon模式运行
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

defaults
    mode                    http            #默认的模式 mode{tcp|http|health}
    log                     global            # 采用全局定义的日志
    option                  httplog           # 日志类别http日志格式
    option                  dontlognull        #不记录健康检查的日志信息
    option http-server-close
    option forwardfor       except 127.0.0.0/8  #后端服务器可以从Http Header中获得客户端IP
    option                  redispatch        #serverid 服务器挂掉后强制指定向到其他健康服务器
    retries                 3           #3次连接失败就认为u服务不可用,也可以通过后面设置
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s        #如果backend 没有指示,默认为10s
    timeout client          1m         #客户端连接超时
    timeout server          1m        #服务器连接超时
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000        #最大连接数
    stats uri /admin                //定义监控页面 uri
listen weblb 0.0.0.0:80
    cookie SERVERID rewrite
    balance roundrobin
    server weba 192.168.4.53:80 cookie app1inst1 check inter 2000 rise 2 fall 5
    server webb 192.168.4.54:80 cookie app1inst2 check inter 2000 rise 2 fall 5  # service haproxy start     //启动服务

  # netstat -pantu | grep :80
  tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      3192/haproxy
  

  客户端访问
  # elinks --dump 192.168.4.50/test.php
  web53
  # elinks --dump 192.168.4.50/test.php
  web54
  # elinks --dump 192.168.4.50/test.php
  web53
  # elinks --dump 192.168.4.50/test.php
  web54
   # elinks --dump 192.168.4.50/test.php
       web53
    # elinks --dump 192.168.4.50/test.php
       web54
  # firefox 192.168.4.50/admin          //查看监控页面


  

  

  

  部署基于业务区分HAProxy负载平衡集群
  

  

  实验拓扑图

操作流程
       Real Server :     

        配置WEB 服务器  使用HTML网页文件       192.168.4.51 pc51         192.168.4.52 pc52  
                                        使用php 网页文件           192.168.4.53  pc53        192.168.4.54  pc54
        HAProxy调度器  :         192.168.4.50 pc50

        安装并启用HAProxy
         修改配置文件配置负载平衡

        

        Clinet :192.168.4.253 pc253

连接测试        



具体步骤
环境准备
    配置yum源
    # service iptables stop            //关闭防火墙
    # chkconfig iptables off            //关闭开机自启
    # setenforce 0                            //设置SELinux 为宽松模


配置web服务端 pc 51    pc 52    pc 53    pc54   
部署基本的httpd 服务
    # yum -y install httpd

在pc 53 和 pc 54 上下载 php 软件包
    #yum -y install  php


    #service httpd start
    #chkconfig httpd on
    # cd /var/www/html/
    [root@pc51 html]# echo 192.168.4.51 > index.html
    [root@pc52 html]# echo 192.168.4.52 > index.html
    [root@pc53 html]# echo ''  > test.php
    [root@pc54 html]# echo ''  > test.php


配置HAProxy分发器  pc50
安装并启动HAProxy
    # mount /dev/cdrom /mnt/
    RHEL6 光盘文件的LoadBalancer目录中含有HAProxy的RPM包
    在已有的yum源配置文件 上添加如下
    [LoadBalancer]
    name=LoadBalancer
    baseurl=file:///mnt/LoadBalancer
    gpgcheck=0
   

    # yum -y install haproxy
    # rpm -qa haproxy
    haproxy-1.5.4-2.el6.x86_64
   

    # rpm -qc haproxy
    /etc/haproxy/haproxy.cfg        //haproxy配置文件
    /etc/logrotate.d/haproxy
    /etc/sysconfig/haproxy
    # cp /etc/haproxy/haproxy.cfg /root/   //备份haproxy配置文件
   

    # chkconfig haproxy on//设置开机自启
    # chkconfig --list haproxy
    haproxy        0:关闭1:关闭2:启用3:启用4:启用5:启用6:关闭
  基于业务区分 修改配置文件
  # cd /etc/haproxy/
  修改配置文件

  # vim haproxy.cfg
global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon
    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

defaults
    mode                    http
    log                     global
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000
    stats uri /admin

frontend  weblb *:80
    acl urlhtml       path_end       -i .html            // acl 名字         匹配路径结尾   不区分大小写 .html
    acl urlphp       path_end       -i .php
    use_backend htmlgrp          if urlhtml             //如果接受到与urlhtml这个ACL 匹配时 去找htmlgrp 组
#   use_backend phpgrp          if urlphp
    default_backend            htmlgrp                 // 默认去找htmlgrp
backend htmlgrp
    balance     roundrobin
    server  web51 192.168.4.51:80 check               //check 后不写参数 默认用 defaults 定义的参数
    server  web52 192.168.4.52:80 check
backend phpgrp
    balance     roundrobin
    server  web53 192.168.4.53:80 check
    server  web52 192.168.4.54:80 check  客户端访问
  # firefox 192.168.4.50/admin          //查看监控页面

  //测试html
  # elinks --dump 192.168.4.50
  192.168.4.51
  # elinks --dump 192.168.4.50
  192.168.4.52
  # elinks --dump 192.168.4.50
  192.168.4.51
  # elinks --dump 192.168.4.50
  192.168.4.52
  # firefox 192.168.4.50/admin          //查看监控页面

  健康性检查
  模拟 51 服务器 故障
  [root@pc51 ~]# service httpd stop
  # elinks --dump 192.168.4.50
  192.168.4.52
  # elinks --dump 192.168.4.50
  192.168.4.52
  # elinks --dump 192.168.4.50
  192.168.4.52
  # firefox 192.168.4.50/admin          //查看监控页面

  模拟 51 服务器 故障已经解决
  [root@pc51 ~]# service httpd start
  # elinks --dump 192.168.4.50
  192.168.4.52
  # elinks --dump 192.168.4.50
  192.168.4.51
  # elinks --dump 192.168.4.50
  192.168.4.52
  # elinks --dump 192.168.4.50
  192.168.4.51
  # firefox 192.168.4.50/admin          //查看监控页面

  //测试php
  # elinks --dump 192.168.4.50/test.php
  192.168.4.53
  # elinks --dump 192.168.4.50/test.php
  192.168.4.54
  # elinks --dump 192.168.4.50/test.php
  192.168.4.53
  # elinks --dump 192.168.4.50/test.php
  192.168.4.54
  # firefox 192.168.4.50/admin          //查看监控页面

  


  

  

  

  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-658445-1-1.html 上篇帖子: LVS&&HAproxy&&Nginx区别 下篇帖子: 外网固定IP如何访问后台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表