🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 概述 HAProxy作为L4负载均衡器工作时,不会去解析任何与HTTP协议相关的内容,只在传输层对数据包进行处理。 优点 - 能够提供更高的性能,适合于基于套接字的服务(如数据库、消息队列、RPC、邮件服务、Redis等),或不需要逻辑规则判断,并已实现了会话共享的HTTP服务 缺点: - 无法实现根据URL向不同后端转发、通过cookie实现会话保持等功能 - 在L4模式下工作的HAProxy也无法提供监控页面。 ## 搭建 设置配置 ``` global daemon maxconn 30000 #ulimit -n至少为60018 user ha pidfile /home/ha/haproxy/conf/haproxy.pid log 127.0.0.1 local0 info log 127.0.0.1 local1 warning defaults mode tcp log global option tcplog #开启tcplog timeout connect 5000ms timeout client 10000ms timeout server 10000ms #TCP模式下,应将timeout client和timeout server设置为一样的值,以防止出现问题 option httpchk GET /healthCheck.html #定义默认的健康检查策略 frontend http-in bind *:9002 maxconn 30000 #定义此端口上的maxconn default_backend default_servers #请求定向至后端服务群default_servers backend default_servers #定义后端服务群default_servers balance roundrobin server def.srv1 192.168.8.111:8082 maxconn 300 check server def.srv2 192.168.8.112:8082 maxconn 300 check ``` **L4模式下的会话保持** 虽然TCP模式下的HAProxy无法通过HTTP Cookie实现会话保持,但可以很方便的实现基于客户端IP的会话保持。只需将 ``` balance roundrobin 改为 balance source ```