前言
随着互联网业务的迅猛发展,大型电商平台和门户网站对系统的可用性和可靠性的要求越来越高,高可用集群、负载均衡集群成为一种热门的系统架构解决方案。在众多的负载均衡解决方案中,有基于硬件的负载均衡设备,例如F5、Big-IP等,也有基于软件的负载均衡产品,如LVS、Nginx以及本文介绍的HAProxy等。在软件的负载均衡产品中,又分为两种实现方式,分别是基于操作系统的实现和基于第三方应用的实现。LVS就是基于Linux操作系统的一种软负载实现,而HAProxy就是基于基于第三方应用实现的软负载均衡。
HAProxy简介
HAProxy是一个开源、高性能、基于TCP(四层)和HTTP(七层)应用的负载均衡软件,它的显著优点如下:
-
可靠性与稳定性都非常出色,可与硬件级设备媲美。
-
支持多种负载均衡调度算法,并且也支持session保持。
-
理论上1G可用RAM空间可维持4W-5W个并发连接,性能强大可见一斑。
-
拥有功能强大的后端服务器的状态监控web页面,可以实时了解设备的运行状态,还可实现设备上下线等简单操作。
-
HAProxy还拥有功能强大的ACL支持,在架构设计与实现上带来很大方便。
HAProxy配置概述
在讲配置之前,顺带提一下安装HAProxy,以Centos7为例的话可以直接yum安装一下就ok了。安装完成之后默认的主配置文件路径为/etc/haproxy/haproxy.cfg.这个主配置文件主要由5个部分组成:
-
global段:
用来设定全局配置参数,配置的为进程级别的参数,且通常与其运行的OS相关。 -
defaults段:
默认参数的配置,在此处配置的各种参数默认会被frontend、backend、listen段引用,而如果frontend、backend、listen段如果设置新的相对应的参数,会覆盖defaults段的设定。 -
frontend段:
用于定义一系列监听的套接字,这些套接字可接受客户端请求并与之建立连接。 -
backend段:
用于定义一系列“后端”服务器,代理将会将对应客户端的请求转发至这些服务器。 -
listen段:
是frontend和backend的结合体,通过关联“前端”和“后端”定义了一个完整的代理,通常只对TCP流量有用。
HAProxy简单配置实例
拓扑环境很简单,3台虚拟机作为3个节点,其中一台运行HAProxy,另外2台作为后端Web Server。其中192.168.1.67为HAProxy节点的地址,.68和.69是后端Web Server地址。
-
HAProxy的日志配置策略
默认情况下,HAProxy没有配置日志输出功能,但是为了管理和维护方便,日志的输出很有必要,这里简单介绍下HAProxy如何启用日志功能:
①首先在global段开启,一般默认是开启的;
vim /etc/haproxy/haproxy.conf global log 127.0.0.1 local2
②以rsyslog管理系统日志为例:
vim /etc/rsyslog.conf $ModLoad imudp $UDPServerRun 514 #启用相关协议与监听接口 local2.* /var/log/haproxy.log #设置日志输出路径 systemctl restart rsyslog.service
-
frontend与backend简单示例
实现将来自用户的80端口的http请求转发至后端8000上的server服务:
①编辑Web Server主配置文件(/etc/httpd/conf/httpd.conf),找到约在42行的Listen 80,并在下面追加:
Listen 8000
并且在两台web服务器的首页添加内容以示区别。
②编辑haproxy主配置文件如下:
frontend main :80 #:80代表匹配任意源地址且源端口为80的请求 default_backend websrvs backend websrvs balance roundrobin #轮询调度 server web1 192.168.1.68:8000 check server web2 192.168.1.69:8000 check #check用于做健康状态检测
③启动haproxy
-
实例效果
原创文章,作者:Net21_charles,如若转载,请注明出处:http://www.178linux.com/24613
评论列表(1条)
写的很好,排版还可以在漂亮一点,用5w1h的思想写,加油