搭建L4负载均衡器
最后更新于:2022-04-02 03:02:57
[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
```
';