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 22:51
下一篇 2017-05-17 08:41

相关推荐

  • grup修复与安装操作介绍

    一、bgru Stage1的安装     1、stage1存储在MBR的前446字节,首先破坏。使用dd命令     2、使用grub-install命令安装修复grub stage1     3、使用grub命令修复 二、进入救援模式,修改grub     1、先破坏grub …

    Linux干货 2016-06-03
  • root用户密码破解

    方法一:进入单用户模式破解root密码 (1)编辑grub菜单(选定要编辑的title,而后使用e命令) (2)在选定的kernel后附加 1,s,S或single都可以 (3)在kernel所在行键入"b"命令即可进入单用户模式 (4)运行passwd命令修改root用户密码 并重启 (5)输入密码即可登录 方法二:进入救援模…

    Linux干货 2016-09-15
  • 网络管理之网络配置

    一:博客 1 centos6网卡别名 在Linux系统中,我们可以在一块物理网卡上配置多个IP地址,以此来实现类似子接口的功能,我们称之为网卡别名。 设置网卡别名,先在/etc/sysconfig/network-scripts目录下将eth0文件复制名为eth0:1的文件,复制文件中的1可随意设置,但为方便管理建议按顺序排列 注意要修改ifcfg-eth0…

    Linux干货 2016-09-05
  • N26 第六周作业

    总结vim编辑器的使用 Vim 模式    Vim 有六种基本模式    Normal mode                 Visual mode&nbs…

    Linux干货 2017-02-01
  • 文本处理

    cat,tac,rev,more,less,head,tail,cut,wc,sort,uniq,grep,
    正则表达式,扩展正则表达式

    2018-03-13
  • tcp socket文件句柄泄漏

    今天发现有台redis机器上出现socket个数告警,这是很奇怪的现象。因为一台redis服务器上就部署了几个redis实例,打开的端口应该是有限。 1、netstat显示的tcp连接数正常 netstat -n | awk '/^tcp/ {++state[$NF]} END …

    Linux干货 2016-04-13