千家信息网

Haproxy配置及负载均衡算法概况

发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,下文给大家带来Haproxy配置及负载均衡算法概况,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用在行业内累计的经验来做一个解答。一、Ha
千家信息网最后更新 2025年02月02日Haproxy配置及负载均衡算法概况

下文给大家带来Haproxy配置及负载均衡算法概况,希望能够给大家在实际运用中带来一定的帮助,负载均衡涉及的东西比较多,理论也不多,网上有很多书籍,今天我们就用在行业内累计的经验做一个解答。

一、Haproxy配置介绍:

  • HaProxy配置(haproxy.cfg)中分为五部分内容(五大组件),可以根据需要选择进行配置。
  • 五大组件:global、defaults、frontend、backend、listen
  1、global:参数是进程级的,通常和操作系统(OS)相关。这些参数一般只设置一次,如果配置无误,就不需要再次配置进行修改。
2、defaults:配置默认参数的,这些参数可以被利用配置到frontend,backend,listen组件。
3、frontend:接收请求的前端虚拟节点,Frontend可以根据规则直接指定具体使用后端的 backend(可动态选择)。
4、backend:后端服务集群的配置,是真实的云服务器,一个Backend对应一个或者多个实体服务器。
5、listen:Frontend和Backend的组合体。

二、Haproxy负载均衡算法介绍:

  • balance roundrobin    # 轮询,软负载均衡基本都具备这种算法
  • balance static-rr     # 根据权重,建议使用
  • balance leastconn     # 最少连接者先处理,建议使用
  • balance source      # 根据请求源IP,建议使用
  • balance uri        # 根据请求的URI
  • balance url_param     # 根据请求的URl参数'balance url_param' requires an URL parameter name
  • balance hdr(name)     # 根据HTTP请求头来锁定每一次HTTP请求
  • balance rdp-cookie(name) # 根据据cookie(name)来锁定并哈希每一次TCP请求


三、用户Session保持、共享:

由于用户请求经过Haproxy处理转发到不同服务器之后,可能导致Session会话不同步的问题,若想实现会话共享或保持,可采用如下3种方式:

1、基于IP地址:

  • 配置:balance source

  • 实现原理:类似Nginx的IP_Hash,将用户IP经过Hash对比判断之后,将请求转发到后端服务器。

2、基于Cookie识别:


  • 配置:cookie SESSION_COOKIE insert indirect nocache

  • 实现原理:向Web服务器端发送给客户端的Cookie中插入(或添加加前缀)haproxy定义的后端的服务器COOKIE ID。

3、基于Session识别:


  • 配置:appsession JSESSIONID len 64 timeout 5h request-learn

  • 实现原理:Haproxy将后端服务器产生的session和后端服务器标识存在haproxy中的一张表里。客户端请求时先查询这张表。

看了以上关于Haproxy配置及负载均衡算法概况,如果大家还有什么地方需要了解的可以在行业资讯里查找自己感兴趣的或者找我们的专业技术工程师解答的,技术工程师在行业内拥有十几年的经验了。

0