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

相关推荐

  • 自制linux和内核编译

    自制linux和内核编译 1、分区并创建文件系统 fdisk /dev/sdb分两个必要的分区/dev/sdb1对应/boot /dev/sdb2对应根/mkfs.ext4 /dev/sdb1mkfs.ext4 /dev/sdb2 2、挂载boot mkdir/mnt/bootmount /dev/sdb1 /mnt/boot 3、安装grub grub-i…

    Linux干货 2016-09-23
  • OpenSSL

    OpenSSL由三部分组成:             libencrypto库             libssl库 …

    Linux干货 2017-05-30
  • MySQL半同步配置

    先配置主从服务器,过程见另一篇博库 就是先搭一个主从服务器,然后 1、先在主节点上安装半同步复制的主节点专用插件 MariaDB [(none)]> SHOW PLUGINS;这条命令可以查看有哪些插件可以用 2、从节点也一样先装插件 从节点上先停止线程 STOP SLAVE; 主节点上 从节点上 START SLAVE; 这里需要手动的停止一下线程,…

    Linux干货 2016-11-21
  • 第八周-Shell脚本编程

    1、写一个脚本,使用ping命令探测172.16.250.1-172.16.250.254之间的所有主机的在线状态; 在线的主机使用绿色显示; 不在线的主使用红色显示; #!/bin/bash for i in {1..254}; do { ip=172.16.250.$i if ping -c 1 -w 1 $ip &> /dev/null …

    Linux干货 2017-08-23
  • 第一周作业

    描述计算机的组成及其功能。 由冯~诺伊曼提出计算机体系结构,计算机主要由控制器、运算器、存储器、输入设备、输出设备五大硬件组成。 控制器(Controller):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。 运算器(Datapath):运算器的功能是对数据进…

    Linux干货 2017-02-07
  • 文件管理及常用命令(一)

    cat命令: -n 增加行号 空行也增加行号          [root@localhost ~]# cat f1     abcd     abc…

    Linux干货 2016-08-08