HAproxy

目录

一、概述

二、搭建


一、概述

简介

HAProxy是一个免费的负载均衡软件,可以运行于大部分主流的Linux操作系统上(CentOS、Ubuntu、Debian、OpenSUSE、Fedora、麒麟、欧拉、UOS)。

HAProxy提供了L4(TCP)和L7(HTTP)两种负载均衡能力,具备丰富的功能。HAProxy具备媲美商用负载均衡器的性能和稳定性。

核心功能

负载均衡:L4和L7两种模式,支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等丰富的负载均衡算法

健康检查:支持TCP和HTTP两种健康检查模式

会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix Cookie,以及上述的多种Hash方式实现会话保持

SSL:HAProxy可以解析HTTPS协议,并能够将请求解密为HTTP后向后端传输

HTTP请求重写与重定向

监控与统计:HAProxy提供了基于Web的统计信息页面,展现健康状态和流量数据。基于此功能,使用者可以开发监控程序来监控HAProxy的状态

关键特性

采用单线程、事件驱动、非阻塞模型,减少上下文切换的消耗,能在1ms内处理数百个请求。并且每个会话只占用数KB的内存。

大量精细的性能优化,如O(1)复杂度的事件检查器、延迟更新技术、Single-buffereing、Zero-copy forwarding等等,这些技术使得HAProxy在中等负载下只占用极低的CPU资源。

HAProxy大量利用操作系统本身的功能特性,使得其在处理请求时能发挥极高的性能,通常情况下,HAProxy自身只占用15%的处理时间,剩余的85%都是在系统内核层完成的。

HAProxy作者在8年前(2009)年使用1.4版本进行了一次测试,单个HAProxy进程的处理能力突破了10万请求/秒,并轻松占满了10Gbps的网络带宽。

应用场景

高并发要求较高的场合下

调度算法

roundrobin:表示简单的轮询。

static-rr:表示根据权重。

leastconn:表示最少连接者先处理。

source:表示根据请求的源 IP,类似 Nginx 的 IP_hash 机制。

ri:表示根据请求的 URI。

rl_param:表示根据 HTTP 请求头来锁定每一次 HTTP 请求。

rdp-cookie(name):表示根据据 cookie(name)来锁定并哈希每一次 TCP 请求。

二、搭建

安装

编译安装

wget https://www.haproxy.org/download/1.7/src/haproxy-1.7.2.tar.gz

make PREFIX=/usr/local/haproxy TARGET=linux2628

make install PREFIX=/usr/local/haproxy

建立配置文件

从haproxy的源码包中的examples下的init.haproxy中获得配置文件的路径“/etc/haproxy/haproxy.cfg”

mkdir /etc/haproxy

touch /etc/haproxy/haproxy.cfg

添加为系统服务

cp /root/haproxy-1.7.2/examples/haproxy.init /etc/init.d/haproxy

vim  /etc/init.d/haproxy

修改: 35行 内容为 BIN=/usr/local/haproxy/sbin/$BASENAME;注释26行

HAproxy_第1张图片

chmod +x /etc/init.d/haproxy

chkconfig --add /etc/init.d/haproxy

添加3和5运行级别下自启动

chkconfig haproxy --level 35 on

chkconfig --list 

HAproxy_第2张图片

启动haproxy

service haproxy  start

service haproxy  stop

HAproxy_第3张图片

service haproxy  restart  | reload

systemctl  daemon-reload

也可以使用systemctl进行启停

HAproxy_第4张图片

配置syslog日志

vim /etc/rsyslog.d/haproxy.conf

HAproxy_第5张图片

web安装nginx(省略步骤)

测试

curl 验证

HAproxy_第6张图片

 网站访问

HAproxy_第7张图片

 HAproxy_第8张图片

你可能感兴趣的:(linux)