HAProxy 入门及基础负载应用

A、首介 。。。

        HAProxy——开放源代码软件,是一款代理服务器和伪4层的负载均衡软件解决方案。基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持高并发链接,它的工作模式可以将其简单而安全地整合到当前的服务架构中,同时可以保护你的WEB服务器不暴露到网络上(设置成代理来实现的 通过VIP将后端的web服务器隐藏到内网中)。haproxy进入了商业版本以后,就进入了快速迭代周期,目前正在维护的版本有 1.4  1.5  1.6  1.7;

B、特点。。。

        b1、免费开源,稳定性非常好

        b2、支持链接拒绝,可以用于防止DDoS攻击

        b3、支持虚拟主机

        b4、能够补充Nginx的一些缺点,路由HTTP请求到后端服务器,基于cookie作会话绑定;同时支持通过获取指定的url来检测后端服务器的状态

        b5、能够将多个请求反代至后端主机完成负载均衡的效果

        b6、通过一个URI接口web应用程序为通过身份验证的用户提供报告详细状态.

        b7、自带监控服务器状态的页面,实时监控状态、强大的后端主机健康检测功能.

        b8、支持 单一进程模型,事件驱动,弹性二叉树;

        b9、负载均衡策略算法较多、具体有如下8种:

    ① roundrobin,表示简单的轮询,这个是负载均衡基本都具备的;

    ② static-rr,表示根据权重,选择 server 的逻辑最为简单

    ③ leastconn,表示最少连接者先处理
    ④ source,表示根据请求源IP,这个跟Nginx的IP_hash机制类似,用其作为解决session问题的一种方法
    ⑤ ri,表示根据请求的URI;
    ⑥ rl_param,表示根据请求的URl参数’balance url_param’ requires an URL parameter name;
    ⑦ hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;

    ⑧ rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。

C、安装。。。

        安装较为简单,在Centos6.4版本后,haproxy就被收录进ISO光盘的base仓库,可见其较高的市场占有率和大众接受度,

         c1、查看安装信息 yum info haproxy    HAProxy 入门及基础负载应用    

         c2、安装  yum install haproxy  -y              


D、程序环境 。。。 

        d1、程序配置文件路径

                配置文件: /etc/haproxy/haproxy.cfg
                Unit File: /usr/lib/systemd/system/haproxy.service (CentOS7)
                主程序: /usr/sbin/haproxy
                日志管理辅助: /usr/bin/halog
                网段计算辅助文件: /usr/bin/iprange

                内建的错误页文件:

            /usr/share/haproxy/400.http
            /usr/share/haproxy/403.http
            /usr/share/haproxy/408.http
            /usr/share/haproxy/500.http
            /usr/share/haproxy/502.http
            /usr/share/haproxy/503.http
            /usr/share/haproxy/504.http             

         d2、Haproxy配置文件分析

                首先备份下

                    cp /etc/haproxy/haproxy.cfg{,.bak}

                打开haproxy.cfg

                    vim /etc/haproxy/haproxy.cfg

                global: 全局配置段,参数是进程级的,通常是和操作系统相关,如果配置无误,就不需要再次进行修改
                proxles 代理配置段如下:
                    — defaults <name>:  为frontend, backend以及listen提供默认配置;
                    — frontend <name>:  相当于nginx的server段,接收请求的前端虚拟节点
                    — backend <name>: 后端服务集群的配置,是真实服务器,一个Backend对应一个或者多个实体服务器,相当于nginx的upstream段,
                                       

E、基础负载测试。。。

        测试准备

            e1、3台主机,第1台(7.3)安装haproxy做调试器,第2,3台(6.8)安装httpd做web应用,配置/var/www/html/index.html测试页面,(3台IP之间需互通)

            e2、启动服务: service httpd start,并监测80端口是否开启,ss -tnlp |grep 80 , 浏览器访问时确认关闭防火墙:iptables -F 及selinux : getenforce,

            e3、确认可正常浏览

        HAProxy 入门及基础负载应用

e4、接下来配置haproxy负载,仅更改几个配置点即可,主要更改frontend和backend段

  1.  可自定义frontend的main名称,加端口即可,如web的80 , ohoh *:80
  2.  default_backend 也可自定,不要和main名称一样即好, web_ser
  3. 此段的中间几行,默认即可,也可删除
  4. 配置backend段,修改backend名称同上web_ser
  5. balance默认调度算法 roundrobin简单轮询,默认
  6. 复制一行server, 将后端的两台http服务器IP和端口写入。保存退出
  7. 启动haproxy服务, systemctl  start  haproxy.service

        HAProxy 入门及基础负载应用


    END:浏览器访问,刷新查看两台切换

             HAProxy 入门及基础负载应用

            HAProxy 入门及基础负载应用


待续。。。




                

原创文章,作者:zzzzzzzzzzzzzzzz.x,如若转载,请注明出处:http://www.178linux.com/76030

(0)
zzzzzzzzzzzzzzzz.xzzzzzzzzzzzzzzzz.x
上一篇 2017-05-17 12:09
下一篇 2017-05-17 12:51

相关推荐

  • shell脚本2——顺序选择语句

    流程控制      顺序执行      选择执行      循环执行 顺序执行:     条件选择:if语句 if语句为选择执行 注意:if语句可嵌套 单分支 if  判断条件:t…

    Linux干货 2016-08-18
  • 一个PHP程序员学习运维的转型

         我是一位PHP开发工程师,平时负责前端、后端以及服务器端的工作,但是称不上是个牛逼的程序员。网上热烈讨论一则传闻,“全栈工程师”(Full Stack Engineer),要求应征者对开发堆栈的每个方面都有所掌握。那究竟何为 “全栈工程师”呢?从字面上来理解,全栈工程师必须熟悉开发堆栈的每一个层次,或者至少熟悉绝大多数…

    Linux干货 2017-04-02
  • Linux 常用命令之cp,一个可以煮饭的工具;

    cp 复制目录和文件 对于系统管理员来说,在文件系统中将文件和目录从一个位置复制到另外一个位置是家常便饭,而cp就是可以煮饭的工具之一。cp需要源对象和目标对象,源对象在前,目标对象在后面。 1. 常用选项 基本用法 [root@local tmp]# ll total 0 -rw-rw-r–. 1 gen…

    Linux干货 2016-08-02
  • 三大家族轻松管理CentOS 7网络属性配置

    一、简单介绍        在CentOS 7中对网络管理还是有不少变化的,例如管理服务的命令变为systemctl,许多命令可以更改后直接生效,还有许多独有的工具,本文以CentOS 6与CentOS 7对比进行讲解,下面现总体介绍一下网络属性配置工具。    &nb…

    Linux干货 2016-04-25
  • rpm包管理

    前言    RPM(简称RPM,全称为The RPM Package Manager)是在Linux下广泛使用的软件包管理器。RPM此名词可能是指.rpm的文件格式的软件包,也可能是指其本身的软件包管理器(RPM Package Manager)。最早由Red Hat研制,现在也由开源社区开发。RPM通常随附于Linux发行版,…

    Linux干货 2015-05-13
  • Shell脚本基础练习

    脚本编程能力是作为运维工程师不可或缺的一项基本技能,各种系统的运维,如果完全靠命令行一条一条命令来执行,工作效率可想而知,而脚本却可以将完成一定功能的各个命令依据一定的流程控制,逻辑判断去完成某种功能,提升工作效率。学习shell脚本,光学习理论是远远不够的,所以在学习中要多多练习,下面就看一些关于shell脚本基础的练习 (1) 编写脚本/root/bin…

    2017-08-05