看看官网怎么说:
HAProxy is a free, very fast and reliable solution offering high availability, load balancing, and proxying for TCP and HTTP-based applications.
HAProxy是一个免费、快速、可靠的解决方案,它为基于TCP和HTTP的应用提供
高可用
、
负载均衡
和
代理
。
可以简单类比成大家笔记熟悉的Nginx。
官网还说了,是因为它比较低调从来不做广告,所以很少人知道它(从未见过如此厚.....)
HAProxy还是haproxy?
HAProxy is written as "HAProxy" to designate the product, and as "haproxy" to designate the executable program, software package or a process. However, both are commonly used for both purposes, and are pronounced H-A-Proxy.
HAProxy表示产品,haproxy表示可执行的程序、软件包和进程。
HAProxy发音是
H
-
A
-
Proxy
。
它就是“
H
igh
A
vailability
P
roxy
”的缩写,顾名思义——高可用代理!
2 HAProxy是什么?
-
是一个TCP代理
-
是一个HTTP反向代理
(在HTTP技术中称之为网关)
-
是一个HTTP修复工具:它可以对URL或任何请求、响应进行修改、修复、添加、移除、重写
-
是一个服务器负载均衡器
:它可以对TCP连接或HTTP请求进行负载均衡
-
是一个流量监管器:对流量限速,防止服务器过载
-
等等
如下图所示,我们的Web服务器没有直接暴露给外部网络,而是通过了中间代理人——HAProxy.
它站一直在前面为我们的服务器保驾护航。
3 HAProxy不是什么?
-
不是一个显示的HTTP代理
-
不是一个缓存代理:它将从服务器中接收到的内容原样返回,没有任何的缓存策略。
-
不是一个数据洗涤器:它不会修改请求或响应的body(header可以修改)
-
不是一个Web服务器
:如果要用Web服务器,可以用Apache或者Nginx。HAProxy可以安装在它们的前端用来提供负载均衡和高可用。
4 HAProxy是如何工作的?
HAProxy是一个单线程、事件驱动、非阻塞引擎,结合了一个非常快速的I/O层和一个基于优先级的调度器。
一旦HAProxy启动时,它会做3件事:
-
处理进入的连接
-
周期性的检查服务器的状态(也就是我们熟知的健康检查)
-
和其它的haproxy节点交换信息
处理进入的请求,说来容易做来难,因为有很多配置,但是可以归纳为以下9步:
-
接收从监听的Socket中传入的连接,这些socket属于一个我们称之为"frontend"的配置实体,它会引用一个或多个监听地址;
-
使用frontend特定的rule处理这些连接
-
把这些连接传递给backend,它包含了server列表和负载均衡策略
-
使用backend特定的rule处理这些连接
-
根据负载均衡策略来决定将这些连接转发到哪个server去
-
使用backend特定的rule处理response数据
-
使用frontend特定的rule处理response数据
-
记录日志
-
如果是在HTTP中,就返回到步骤2等待新的请求;否则的话就关闭连接
5 基本功能
-
代理:代理是指在客户端和服务器端之间通过两个独立的连接交换数据的操作(类比二手房中介)。
-
SSL:安全传输
-
监控:HAProxy非常关注可用性,它会关注服务器的状态
-
高可用
-
负载均衡
-
粘黏性
-
信息采样及转换
-
ACLs和条件
-
内容交换
-
粘黏表
-
格式化字符串
-
HTTP重写及重定向
-
服务器保护
-
日志
-
统计
本文主要内容分成三部分,希望能对大家快速了解HAProxy有所帮助。1. 第一部分是对HAProxy的简单介绍。2. 第二部分是介绍在CentOS7上部署HAProxy的方法。3. 第三部分是部署三个Tomcat搭建集群用于测试。HAProxy简介官方网站是:http://www.haproxy.org。有点遗憾的是现在居然要科学上网才能访问。当前最新版本已经是2.2了(截止至2020年8月3日)。HAProxy是什么看看官网怎么说:HAProxy is ..
负载均衡:L4和L7两种模式,支持RR/静态RR/LC/IP Hash/URI Hash/URL_PARAM Hash/HTTP_HEADER Hash等丰富的负载均衡算法
健康检查:支持TCP和HTTP两种健康检查模式
会话保持:对于未实现会话共享的应用集群,可通过Insert Cookie/Rewrite Cookie/Prefix Cookie...
一、
Haproxy
概述:
一种高效、可靠、免费的高可用及负载均衡软件,非常适合于高负载站点的七层数据请求。客户端通过
Haproxy
代理服务器获得站点页面,而代理服务器收到客户请求后根据负载均衡的规则将请求数据转发给后端真实服务器
实现了一种事件驱动、单一进程模型,能支持非常大的并发连接数
同一客户端访问服务器,
Haproxy
保持回话的三种方案:
1)
Haproxy
将客户端ip进行Hash计...
一、实验环境:
server1:172.25.55.1(rhel7.3虚拟机,关闭防火墙与内核级防火墙)
server2:172.25.55.2(rhel7.3虚拟机,关闭防火墙与内核级防火墙,下载httpd便编辑好网页文件)
server3:172.25.55.3(rhel7.3虚拟机,关闭防火墙与内核级防火墙,下载httpd便编辑好网页文件)
二、使用RPM工具创建haprox安装包
[roo...
HAProxy
是一个使用C语言编写的自由及开放源代码软件[1],其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
HAProxy
是一个使用C语言编写的自由及开放源代码软件[1],其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
HAProxy
实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存...
backend servers
server server1 10.0.0.1:8080 maxconn 32
server server2 10.0.0.2:8080 maxconn 32
server server3 10.0.0.3:8080 maxconn 32
该配置文件将通过端口80接收请求,并通过三台后端服务器(10.0.0.1:8080、10.0.0.2:8080 和 10.0.0.3:8080)实现反向代理。每台后端服务器最多连接32个客户端。