文章目录
1. HAProxy简介
HAProxy官网:https://www.haproxy.org/
1.1 HAProxy
HAProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy 特别适用于那些负载特大的 web 站点, 这些站点通常又需要会话保持或七层处理。HAProxy 运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的 web 服务器不被暴露到网络上
- 安装:
yum install -y haproxy
1.2 配置文件参数
- global:设置全局配置参数,属于进程的配置,通常是和操作系统相关
- defaults:配置默认参数,这些参数可以被用到frontend,backend,Listen组件
- frontend:接收请求的前端虚拟节点,Frontend可以更加规则直接指定具体使用后端的backend
- backend:后端服务集群的配置,是真实服务器,一个Backend对应一个或者多个实体服务器
- Listen:frontend和backend的组合体
1.3 配置文件说明
global:全局参数的设置
log 127.0.0.1 local2#指定日志设备
chroot /var/lib/haproxy#jail 目录
pidfile /var/run/haproxy.pid#定义haproxy的pid
maxconn 4000#定义每个haproxy进程的最大连接数
#由于每个连接包括一个客户端和一个服务器端,所以单个进程的TCP会话最大数目将是该值的两倍。
user haproxy# 设置运行haproxy的用户,也可用uid
group haproxy# 设置运行haproxy的组,也可用gid
daemon# 以守护进程的方式运行
#nbproc 16# 设置haproxy启动时的进程数
stats socket /var/lib/haproxy/stats#
defaults:默认部分的定义
mode http#mode {http|tcp|health}
#http是七层模式,tcp是四层模式,health是健康检测,返回OK
log global#应用全局的日志配置
option httplog#http 日志格式
option dontlognull #禁用空链接日志
option http-server-close#每次请求完毕后主动关闭http通道
option forwardfor except 127.0.0.0/8
option redispatch #当 client 连接到挂掉的机器时,重新分配到健康的主机
retries 3#连接后端服务器的失败重连次数,连接失败次数超过此值后将会将对应后端服务器标记为不可用
timeout http-request 10s#http请求超时时间
timeout queue 1m#一个请求在队列里的超时时间
timeout connect 10s#连接超时
timeout client 1m#客户端超时
timeout server 1m#服务器端超时
timeout http-keep-alive 10s#设置http-keep-alive的超时时间
timeout check 10s#检测超时
maxconn 3000#定义每个haproxy进程的最大连接数
stats uri /status#haproxy 监控页面
stats auth admin:westos#设置统计页面认证的用户和密码
frontend:前端
frontend main *:80#前端,监听的实例名称main、地址、端口
#定义一个名叫url_static的acl,匹配路径以下面几个开头的