当前位置: 首页 > 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.lryc.cn/news/589920.html

相关文章:

  • Thymeleaf 流程控制与迭代详解
  • 使用TIANAI-CAPTCHA进行行为验证码的生成和缓存的二次校验
  • 用 Ray 跨节点调用 GPU 部署 DeepSeek 大模型,实现分布式高效推理
  • C# StringBuilder源码分析
  • 在不升级Office 32位的情况下,安装64位MDAC
  • 15.dispatcherRunner启动
  • 上线!《指标 + AI 数智应用白皮书》聚焦智能问数与分析等AI高阶应用,深入剖析四大行业落地实践
  • Python数据分析全流程指南:从数据采集到可视化呈现的实战解析
  • 修改pipenv默认安装路径
  • 李宏毅2025《机器学习》第七讲-推理模型:从原理、流派到未来挑战
  • Python面向对象编程(OOP)详解:通俗易懂的全面指南
  • C++面向对象创建打印算术表达式树
  • IIS-网站报500.19错误代码0x8007000d问题解决
  • 代码随想录算法训练营十七天|二叉树part07
  • LeafletJS 入门:构建你的第一个交互式地图
  • 【无标题】LighthouseGS:面向全景式移动拍摄的室内结构感知三维高斯泼溅
  • Day36 Java方法和流程控制练习 计算器
  • 微软AutoGen:多智能体协作的工业级解决方案
  • ESP32——快速入门
  • 外接硬盘写入速度很慢?Windows 写入缓存功能开启教程!
  • 知识点3:python-sdk 核心概念(prompt、image、context)
  • 项目学习笔记 display从none切换成block
  • 尚庭公寓-------图片上传接口
  • 2025年工会考试题库及答案
  • alpineLinux修改包管理为国内源
  • 详解SPFA算法-单源最短路径求解
  • 陆面、生态、水文模拟与多源遥感数据同化的实践技术应用
  • 【图灵完备】算数运算
  • sktime - 时间序列机器学习统一接口
  • 控制Vue对话框显示隐藏