Haproxy的基础应用!

        本篇博客主要是和大家共同了解一下Haproxy的功能与基础应用,目的是更加熟练的掌握Haproxy的工作原理,为将来的工种中做好铺垫!

      本篇博客共分为两个部分:

                                          ⊙ Haproxy的简介

                                          ⊙ Haproxy作为负载均衡器的基础配置


       ⊙ Haproxy的简介:


        Haproxy是工作在伪四层的负载均衡软件的实现方式,haproxy是TCP/HTTP服务的反代,基于我们静态分配的cooclks来完成http协议的请求调度,可以基于服务器的持久连接来实现负载均衡。haproxy进入了商业版本以后,就进入了快速迭代周期,目前正在维护的版本有 1.4  1.5  1.6  1.7的 和正在测试的1.8版本。haproxy与keepalived一样,重CentOS6.4以后开始被收录到base仓库,随系统反向光盘直接提供,由此,我们可以看到他的市场占有率和被大众接受的程度,同时,他的可靠性也足以被验证;haproxy是随base仓库提供的,但nginx没有,还属于epel仓库才有。也就意味着,我们将来要配置使用haproxy要比使用nginx还要容易一些。至少从来源方面来说如此;

        我们可以用先查看一下base仓库中提供的版本,然后在官方文档中查看响应的手册;他的官方主页为: haproxy.org; 其文档位于: http://cbonte.github.io/haproxy-dconv/

      我们可以直接使用命令: yum -y install haproxy 进行安装;安装完成后,我们可以看到:

      主程序: /usr/sbin/haproxy

      主配置文件: /etc/haproxy/haproxy.dfg

      unit file: /usr/lib/systemd/system/haproxy.service

      进入到主配置文件中,我们可以看到大体上分为两段:

      global:全局配置段,进程及完全配置相关的参数,性能调整相关参数,Debug参数;

      proxies:代理配置段;

      我们先来看代理配置段,代理配置段又分为四个组件:

                                         defaults:定义前端和后端公共参数的默认值;

                                         frontend:用来定义如何接受用户请求的server;

                                         backend:用来定义如何将后端服务器归并成组,而且能做负载均衡调度的;

                                         listen:    一个前端和一个后端定义在一起,此前端只调用此后端,此后端只供应此前端;

         这些我们都把它统称为代理配置段,这些前端,后端是用来定义代理功能是如何工作的,但是作为haproxy应用程序来说,自己以哪个用户身份运行,与代理无关,我们监听在哪个端口上与代理有关系,但是作为global自己来讲,我们运行为几层结构模式?启动多少个子进程?等等。与代理也没有关系。这些都是程序级配置,我们都把他放在global全局配置段中,所有程序自身工作属性的配置段,都在global中,而代理的配置段,要在代理配置断种;整个haproxy就是这般配置的!


 ⊙ Haproxy作为负载均衡器的基础配置


      好了,说了这么多,现在我们来配置一个简单的负载均衡进群,首先,我们需要准备三台主机,在这里,我们都是使用的CentOS7.3系统的,第一个作为haproxy调度器,后两台做后端服务器,我们先在后端服务器上下载安装上httpd,然后分别设置他们的访问页面,如图0516-01.jpg所示;然后使用命令:systemstl start httpd 启动它们,使用 ss -tnl 可以看到80端口已然开启,清除防火墙,关闭selinux,以免成为不必要的阻碍。至此,两台后端主机配置完毕,在这里需要说明一下,理论上后端的两台服务器应该使用私网Ip,并且前端调度器有一个公网Ip和一个私网Ip,并能够与两台后端服务器的私网Ip互相通信,在这里我们主要用来haproxy的调度功能,所以方便起见,我们都是有的公网Ip;

                     Haproxy的基础应用!

                     Haproxy的基础应用!

                                                     示图: 0516-01.jpg

      然后我们再来配置haproxy调度器,先使用命令 yum -y install haproxy 下载安装haproxy,安装完成后,我们来看一下它生成的一下文件,其主配置文件为/etc/haproxy中的haproxy.dfg;主进程为/usr/sbin/haproxy;其他的则为一些辅助文件,下面,我们进入到主配置文件中,前面已经对主配置文件的结构进行了介绍,所以在这里我们可以直接进行配置;

      配置haproxy为一个web server负载均衡调度器其实非常简单,我们只需要更改几个参数即可,我们先来配置frontend段,main表示主server,我们可以随意定义,但是需要注意的是一定不能重复,包括bcakend段中的也是,这里,我们命名为marui,然后把端口改为webfuwu默认的80端口,中间的都可以删除,只留下default_backend即可,并把app改为backend段的名称即可,然后再来配置backend段,balance为负载均衡的调度算法,roundrobin为轮询算法,这两个参数不用动,把server在复制一行,进行配置,把后端两个服务器的IP:PORT写入即可,具体配置如图所示;至此,配置完成!


                Haproxy的基础应用!

                                                                示图: 0516-02.jpg


        启动服务: systemctl start haproxy 使用 ss -tnl 查看调度器80端口已然开启,清除防火墙,关闭selinux,全部设定完成后,我们就可以使用浏览器进行访问调度器地址了!


                Haproxy的基础应用! 

                Haproxy的基础应用!

                                                       示图: 0516-03.jpg

           

                刷新浏览器,可以看到他会在30和20之间来会调度,自此,一个简单的haproxy负载均衡调度器就配置完成啦!是不是非常easy!但是,这只是haproxy的极小的一部分,haproxy还有许许多多的配置参数等待着我们一一去学习,本篇博客就先介绍这些,对于haproxy更深入的了解使用,我们下篇继续!



















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

(0)
MaruiMarui
上一篇 2017-05-16
下一篇 2017-05-17

相关推荐

  • 马哥教育网络班22期+第五周课程练习

    1、显示当前系统上root、fedora或user1用户的默认shell; ~]# cat /etc/passwd |grep -E  "^(root|fedora|user1)" |awk -F: '{print $NF}'/bin/bash/bin/bash/bin/bash 2、找出/etc/rc.d/…

    Linux干货 2016-09-19
  • 常用文本处理工具 及 正则表达式详解

      >>>文本处理工具<<< 一:文本查看(cat、less、more、head、tail、cut、paste) cat  (常用于显示内容较少的文本) 功能:查看文件内容,创建文件,文件合并,追加文件内容 选项(options):  ①查看文件内容:  -A  = -vt…

    2017-07-30
  • Linux命令之:setfacl和getfacl

    命令总结之:setfacl和getfacl acl:access control list,实现灵活的权限管理 除了文件的所有者,所属组合其他人,可以对更多的用户设置权限 acl生效顺序:所有者、自定义用户、自定义组、其他人 1、首先我们查看man帮助文档说明 [root@centos7 sixijie]# man setfac…

    Linux干货 2016-08-04
  • N21-第二周博客

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 文件管理命令有复制、删除与移动:cp,mv,rm cp(复制档案或目录) [root@study ~]# cp [-adfilprsu] 源(source) 目标(destination) [root@study ~]# cp [options] source1 source2 s…

    Linux干货 2016-07-16
  • N25期–第十六周作业

    1源码编译安装LNMP架构环境; 2、编写一个脚本完成以下功能: (1)、一键搭建LNMP源码编译环境; (2)、可通过在脚本后面跟上一些参数来自定义安装目录等其他选项。” 1、源码编译安装LNMP架构环境; 安装编译工具和库文件 1 yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libp…

    Linux干货 2017-05-08
  • 测试Markdown

    测试markdown是否可用

    Linux干货 2018-03-10