当前位置: 首页 > news >正文

HAProxy简介及配置文件详解

目录

一、简介

二、HAProxy特点和优点

三、HAProxy保持会话的三种解决方式

四、HAProxy的balance 八种负载均衡算法

五、HAProxy主要工作模式

六、HAProxy安装

七、HAProxy配置文件参数

7.1、HAProxy环境

7.2、配置文件说明:

7.3、测试配置文件

八、状态统计功能测试


一、简介

官网:http://www.haproxy.com

       HAProxy是一款应对客户端10000以上的同时连接的高性能的TCP和HTTP负载均衡器。其功能是用来提供基于cookie的持久性,基于内容的交换,过载保护的高级流量管制,自动故障切换,以正则表达式为基础的标题控制运行时间,基于web的报表,高级日志记录以帮助排除故障的应用或网络及其他功能。

       HAProxy 提供高可用性、负载均衡以及基于TCP和HTTP的应用代理,支持虚拟主机,它是免费、快速并且可靠的一种负载均衡解决方案。适合处理负载站点的七层数据请求。类似的代理服务可以屏蔽内部真实服务器,防止内部服务器遭受攻击。

二、HAProxy特点和优点

1、支持原生SSL,同时支持客户端和服务器的SSL

2、智齿IPv6和UNIX套字节

3、支持HTTP Kelive-Alive

4、支持HTTP/1.1压缩,节省宽带

5、支持优化健康检测机制(SSL、scripted TCP、check agent…)

6、支持七层负载平衡

7、可靠属性和稳定性非常好

8、并发连接40000-50000个,单位时间处理最大请求20000个,最大数据处理10Gbps

9、支持8种负载均衡算法,同时支持session保持

10、支持虚拟主机

11、支持连接拒绝、全透明代理

12、拥有服务器状态监控页面

13、支持ACL(access control list)

三、HAProxy保持会话的三种解决方式

HAProxy为了让同一客户端访问服务器可以保持会话。有三种解决方法:客户端IP、cookie以及session

1、通过客户端IP进行hash计算并保存,以此确保当相同IP访问代理服务器可以转发给固定的真实服务器

2、依靠真实服务器发送客户端的cookie信息进行会话保持。

3、将保持真实服务器的session以及服务器标识,实现会话保持

(HAProxy只要求后端服务器能够在网络联通,也没有像LVS那样繁琐的ARP配置)

四、HAProxy的balance 八种负载均衡算法

1、RR(Round Robin)

RR算法是最简单最常用的一种算法,即轮询调度

2、LC(Least Connections)

最小连接数算法,根据后端的节点连接数大小动态分配前端请求

3、SH(Source Hashing)

基于来源访问调度算法,用于一些有session会话记录在服务端的场景,可以基于来源的IP、cookie等做集群调度

4、uri(资源标识符)

表示根据请求的uri,做cdn(内容分发网络)需使用

5、url_param(资源定位符)

表示根据HTTP请求头来锁定每一次http请求

6、rdp—cookie(name)

表示根据cookie(name)来锁定并哈希(hashing)每一次tcp请求

7、source

表示根据请求的源IP,类似Nginx的IP hash机制

8、static-rr

表示根据权重,轮询

五、HAProxy主要工作模式

       tcp模式:在客户端和服务器之间将建立一个全双工的连接,且不会对七层的报文做任何处理的简单模式。通常用于SSL、SSH、SMTP等应用层。

       http模式(一般使用):客户端请求在转发后端服务器之前会被深度分析,所有不与RFC格式兼容的请求都会被拒绝。

六、HAProxy安装

通过tar.gz安装HAProxy
1、准备好 HAProxy 安装包,传到/opt目录下HAProxy - The Reliable, High Perf. TCP/HTTP Load BalancerReliable, High Performance TCP/HTTP Load Balancerhttps://www.haproxy.org/#down
2、解压到 /usr/local/src
3、查询系统内核版本
4、make编译
5、安装到 /usr/local/haproxy 目录下
6、创建目录、创建HAProxy配置文件
haproxy-x.x.x.tar.gz
tar -zxvf haproxy-x.x.x.tar.gz -C  /usr/local/src
cd /usr/local/src/haproxy-x.x.x/
uname -r   
make TARGET=linux31 PREFIX=/usr/local/haproxy [ARCH=x86_64]
make install PREFIX=/usr/local/haproxy
mkdir -p /usr/data/haproxy/
vim /usr/local/haproxy/haproxy.cfg
通过yum安装
yum -y install haproxy

七、HAProxy配置文件参数

7.1、HAProxy环境

haproxy的配置文件haproxy.cfg的默认地址:/etc/haproxy/haproxy.cfg

haproxy.cfg由两大部分组成,分别是global和proxies部分

global全局配置
进程及安全配置相关的参数
性能调整相关参数
Debug参数
proxies:代理配置
defaults:为frontend,backend,listen提供默认配置
frontend:前端,相当于 nginx 中的 server { }
backend:后端,相当于 nginx 中的 upstream { }
listen:同时拥有前端和后端配置

7.2、配置文件说明:

1.frontend 端(front end):指定接收 客户端 侦听套接字设置。

2.backend 端(back end):指定将连接请求转发至 后端服务器 的相关设置。

3.listen 端:指定完整的前后端设置,只对TCP有效。

4.proxy 名称:使用字母 、数字 - 、_ 、. 、: ,并区分字符大小写。

7.3、测试配置文件

八、状态统计功能测试

http://www.dtcms.com/a/282780.html

相关文章:

  • ESP‑IDF 默认的连接流程是
  • 2_概要设计编写提示词_AI编程专用简化版
  • 快速开发汽车充电桩的屏幕驱动与语音提示方案
  • __is_constexpr(x)宏介绍---max()宏扩展
  • Linux 常用指令
  • 信而泰×DeepSeek:AI推理引擎驱动网络智能诊断迈向 “自愈”时代
  • Java基础语法补充v2
  • C# --- 单例类错误初始化 + 没有释放资源导致线程泄漏
  • The 2024 ICPC Asia Shenyang Regional Contest B. Magical Palette
  • Docker容器技术讲解
  • Liunx练习项目6-创建dns服务器
  • 主机安全---开源wazuh安装
  • 深入理解概率图模型:贝叶斯网络因子分解、d-分离与马尔可夫毯
  • 基于用户空间操作IIC接口调试云台电机
  • 7.16 Java基础 | 集合框架(上)
  • 微服务架构中实现跨服务的字段级权限统一控制
  • PyTorch深度学习框架入门案例实战
  • 第一章 【vue】基础(超详细)
  • 【动归解题套路框架】【带备忘录的递归】【最优子结构】【自下而上DP table】
  • Spring核心注解@RequestMapping详解
  • Java 二维数组详解:从基础语法到实战应用,彻底掌握多维数据结构
  • 边缘计算革命:AWS Snowcone在智慧工厂的落地实践(2025工业4.0实战指南)
  • 笔试——Day10
  • 【AI交叉】天文学:人工智能如何赋能星辰大海的探索
  • 如何关闭Elasticsearch的安全认证的解决方法
  • Maven入门指南:生命周期、阶段和执行顺序详解
  • 基于深度学习的情感分析模型:从文本数据到模型部署
  • leetcode:990.等式方程的可满足性[图]
  • 推荐《Python 编程:从入门到实践》之Python编程的基础知识
  • 经典算法之基数排序