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

相关推荐

  • 学习宣言

      人生还有很多精彩时刻,需要你去探寻,linux 就是这个深渊的入口,我其实已迫不及待,伙伴们别怕,跟我来,一路披荆斩棘,踏寻生命的足迹!Fighting!

    Linux干货 2016-10-25
  • LVM管理

    LVM管理

    2017-12-28
  • 第四周作业

    cp、grep、sueradd、chmod、vim命令的一些用法

    Linux干货 2017-12-24
  • 四大开源协议比较:BSD、Apache、GPL、LGPL

          现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种。我们现在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。   这里我们来看四种最常用的开源协议及它们的适用范围,供那些准备开…

    系统运维 2016-08-15
  • 网络基础命令与配置文件地址

    centos6查看网卡dmesg | grep -i ethethtool -i eth0卸载网卡驱动modprobe -r e1000rmmod e1000装载网卡驱动modprobe e1000网络配置,静态指定system-config-network-tui 字符界面式网络配置ip addr add IP地址 via 网关IP地址动态分配在/etc/…

    2017-09-09
  • TCP和ARP

    TCP是一个工作在传输层,面向连接的协议,一台计算机与另一台计算机通信就需要TCP协议,当然还有一个和它并列的一个协议可以使用,只是TCP更加稳定且常用. 上图为一台计算机与另一台计算机建立通讯的过程,它实际通信中传递的不止斜线上的信息.上面的SYN是同步号, ACK为确认号.seq为序列号,ack为辅助的确认号 上面为建立通信时发送的TCP信息详细结构,i…

    Linux干货 2017-11-29