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

相关推荐

  • mysql基础概念笔记 part1

    mysql基础概念笔记     part1#wmd-preview h1 { color: #0077bb; /* 将标题改为蓝色 */} mysql基础概念笔记     part1 mysql 基础概念 基础原理,逻辑架构,事务,并发控制,读写锁 1、前言     作为一个运维…

    Linux干货 2016-09-19
  • Linux进程与作业1

    Linux进程与作业 操作系统的组成部分:硬件,kernel,lib, 系统调用–>调用kernel lib调用–> 库调用,kernel调用 运行用户代码–>用户模式–>用户空间; 运行kernel–>内核模式–>内核空间; 内核的功用:进程管理,文件系统,网络功能,内存管理,驱动程序,安全功能 C…

    Linux干货 2016-08-02
  • 第三周:文本处理工具wc,cut,sort,uniq,tr,tee命令练习和用户及组相关命令练习

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可; [root@app1 tmp]# who | cut -d" " -f1| uniq root dts centos 2、取出最后登录到当前系统的用户的相关信息; [r…

    Linux干货 2016-09-27
  • python基础_1

    变量/常量 常量:一旦赋值,就不能对它从新复制。python不存在常量 字面常量:一个单独出现的量,未赋值给任何变量或者常量 变量:就是一个名字,在固执符号的左边,这个名字可以指复制符号右边的内容。 变量列子: i = 3 print(i)  注:python 是强类型语言,是动态类型语言。(强类型指类型之间不能相互计算/动态类型是指变量是可以赋值…

    Linux干货 2017-10-10
  • RHCE系列之备份工具—-镜像备份Rsync

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1431426     我一哥们最近在搞备份,需要用到rsync。因此,鄙人就简单总结了下rsync,也就有了这篇博文,希望对51…

    Linux干货 2016-08-15
  • Linux基础知识(二)

    一、Linux文件管理类命令的使用方法及其相关示例演示? 1、文件管理 (1)mkdir (2)rmdir (3)cp (4)mv (5)rm (6)touch 2、文件查看 (1)ls (2)tree (3)cat&tac (4)head (5)tail (6)more&less (7)stat 二、Bash特性详解 1、命令行展开 (1)…

    Linux干货 2016-09-27