HAProxy 组成及配置

2019-03-20  本文已影响0人  Alexander_Zz

主程序:/usr/sbin/haproxy
配置文件:/etc/haproxy/haproxy.cfg
Unit file:/usr/lib/systemd/system/haproxy.service

进程及安全配置相关的参数
性能调整相关参数
Debug 参数

defaults:为 frontend,backend,listen 提供默认配置
frontend:前端,相当于 nginx 中的 server{}
backend:后端,相当于 nginx 中的 upstream {}
listen:同时拥有前端和后端,适用于一对一环境


HAProxy 配置

chroot   # 锁定运行目录
deamon   # 以守护进程运行
stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin   # socket 文件
user,group,uid,gid   # 运行haproxy 的用户身份
nbproc   # 开启的 haproxy 进程数,与 CPU 保持一致
nbthread   # 指定每个 haproxy 进程开启的线程数,默认为每个进程一个线程
cpu-map 1 0   # 绑定 haproxy 进程至指定 CPU
maxconn   # 每个 haproxy 进程的最大并发连接数
maxsslconn  # SSL 每个 haproxy 进程 ssl 最大连接数
maxconnrate   # 每个进程每秒最大连接数
spread-checks   # 后端 server 状态 check 随机提前或延迟百分比时间,建议  2-5 (20%-50%) 之间
pidfile   # 指定 pid 文件路径
log 127.0.0.1 local3 indo   # 定义全局的 syslog 服务器;最多可以定义两个
defaults [<name>]   # 默认配置项,针对以下的 frontend、backend 和 siten 生效,可以多个 name
frontend <name>   # 前端 servername,类似于 nginx 的一个虚拟主机 server
backend <name>   # 后端服务器组,等于 nginx 的 upstream
listen <name>   # 将 frontend 和 backend 合并在一起配置

注:name 字段只能使用 "-"、"_"、"." 和 ":",并且严格区分大小写,例如:Web 和 web 是完全不同的两组服务器

option redispatch   # 当 server ID 对应的服务器 down 了,强制定向到其他健康的服务器
option abortonclose   # 当服务器负载很高的时候,自动结束掉当前队列处理比较久的链接
option http-keep-alive 60   # 开启会话保持
option forwardfor   # 开启 IP 透传
mode http   # 默认工作类型
timeout connect 120s   # 连接到一台后端 server 的最长时间
timeout client 600s   # 与客户端的最长空闲时间
timeout server 600s   # 等待服务端的超时时长
timeout http-keep-alive 120s   # session 会话保持时间
timeout check 5s   # 对后端服务器的检测超时时间
bind [<address>]:<port_range>[,...][param*]
mode http/tcp   # 指定负载协议类型
use_backend BACKEND_NAME   # 调用的后端服务器组名称

示例

frontend WEB_PORT
  bind:80,:8080
  bind 192.168.7.102:10080,192.168.7.102::10043
  use_backend BACKEND_NAME
mode http/tcp/health   # 指定负载协议类型
option   # 配置选项
server   # 定义后端 real server

注意:option 后面加 httpckd,smtpchk,mysql-check,pgsql-check,ssl-hello-chk 方法,可用于实现更多应用层检测功能
后端服务器状态检测及相关配置

check   # 对指定 real 进行健康状态检查,默认不开启
addr IP   # 可指定的健康状态监测 IP
port NUM   # 指定的健康状态监测端口
inter NUM   # 健康状态检查间隔时间,默认 2000 ms
fall NUM   # 后端服务器失效检查次数,默认为 3
rise NUM   # 后端服务器从下线恢复检查次数,默认为 2
weight   # 默认为 1,最大值 256,0 表示不参与负载均衡
backup   # 将后端服务器标记为备份状态
disabled   # 将后端服务器标记为不可用状态
redirect prefix http://www.rookie.com/   # 将请求临时重定向至其它 URL,只适用于 http 模式
maxconn <maxconn>   # 当前后端 server 的最大并发连接数
backlog <backlog>   # 当 server 的链接数达到上限后的后援队列长度

示例

frontend WEB_PORT_80
  bind 192.168.7.248:80
  mode http
  use_backend web_port_http_nodes

backend web_port_http_nodes
  mode http
  option forwardfor
  server 192.168.7.101 192.168.7.101:8080 check inter 3000 fall 3 rise 5
  server 192.168.7.102 192.168.7.102:8080 check inter 3000 fall 3 rise 5
listen WEB_PORT_80
  bind 192.168.7.102:80
  mode http
  option forwardfor
  server web1 192.168.7.101:8080 check inter 3000 fall 3 rise 5
  server web2 192.168.7.101:8080 check inter 3000 fall 3 rise 5
上一篇 下一篇

猜你喜欢

热点阅读