在CentOS上安装和使用代理软件HAProxy的完全攻略

2020-01-30 14:48:02王旭

所有的这些细微之处的优化实现了在中等规模负载之上依然有着相当低的CPU负载,甚至于在非常高的负载场景中,5%的用户空间占用率和95%的系统空间占用率也是非常普遍的现象,这意味着HAProxy进程消耗比系统空间消耗低20倍以上。因此,对OS进行性能调优是非常重要的。即使用户空间的占用率提高一倍,其CPU占用率也仅为10%,这也解释了为何7层处理对性能影响有限这一现象。由此,在高端系统上HAProxy的7层性能可轻易超过硬件负载均衡设备。
在生产环境中,在7层处理上使用HAProxy作为昂贵的高端硬件负载均衡设备故障故障时的紧急解决方案也时长可见。硬件负载均衡设备在“报文”级别处理请求,这在支持跨报文请求(request across multiple packets)有着较高的难度,并且它们不缓冲任何数据,因此有着较长的响应时间。对应地,软件负载均衡设备使用TCP缓冲,可建立极长的请求,且有着较大的响应时间。
HAProxy目前主要有三个版本: 1.3 , 1.4 ,1.5,CentOS6.6 自带的RPM包为 1.5 的。
二,安装配置HAProxy
以下实验环境均为CentOS6.6 i686平台。
1,安装haproxy

复制代码
[root@LB ~]# yum install -y haproxy #直接使用RPM来安装
[root@LB ~]# rpm -qi haproxy #版本为1.5.4
Name : haproxy Relocations: (not relocatable)
Version : 1.5.4 Vendor: CentOS
Release : 2.el6 Build Date: Thu 23 Jul 2015 04:26:35 PM PDT
Install Date: Sat 29 Aug 2015 06:49:30 PM PDT Build Host: c6b9.bsys.dev.centos.org
Group : System Environment/Daemons Source RPM: haproxy-1.5.4-2.el6.src.rpm
Size : 2542578 License: GPLv2+
Signature : RSA/SHA1, Fri 24 Jul 2015 01:39:18 PM PDT, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
URL : http://www.haproxy.org/
Summary : HAProxy is a TCP/HTTP reverse proxy for high availability environments
[root@LB ~]# rpm -ql haproxy
/etc/haproxy
/etc/haproxy/haproxy.cfg ---------->配置文件
/etc/logrotate.d/haproxy
/etc/rc.d/init.d/haproxy
/etc/sysconfig/haproxy
/usr/bin/halog
/usr/bin/iprange
/usr/sbin/haproxy
[root@LB ~]# cd /etc/haproxy/

2,详解配置文件
haproxy 的配置文件由两部分组成:全局设定和对代理的设定,共分为五段:global,defaults,frontend,backend,listen。
2.1 配置文件格式
HAProxy的配置处理3类来主要参数来源:
——最优先处理的命令行参数;
——“global”配置段,用于设定全局配置参数;
——proxy相关配置段,如“defaults”、“listen”、“frontend”和“backend”;
2.2 时间格式
一些包含了值的参数表示时间,如超时时长。这些值一般以毫秒为单位,但也可以使用其它的时间单位后缀。