haproxy使用

haproxy使用

  • 安装
    • 使用yum安装
  • 配置文件
    • global 全局配置
    • Proxies配置
      • Proxies配置-defaults
      • Proxies配置-listen 简化配置

安装

社区版官网链接:http://www.haproxy.org
CentOS 7 的默认的base仓库中包含haproxy的安装包文件,但是版本比较旧,是1.5.18的版本,距离当
前版本已经有较长时间没有更新,由于版本比较旧所以有很多功能不支持,如果对功能和性能没有要求可以使用此版本,否则推荐使用新版本。

使用yum安装

[root@localhost ~]# yum -y install  haproxy
验证版本信息
[root@localhost ~]# haproxy -v
	HA-Proxy version 1.5.18 2016/05/10
	Copyright 2000-2016 Willy Tarreau 

配置文件

官方配置介绍:http://cbonte.github.io/haproxy-dconv/2.1/configuration.html
默认安装后配置文件位置位于/etc/haproxy/haproxy.cfg

global 全局配置

chroot #锁定运行目录
deamon #以守护进程运行
stats socket /var/lib/haproxy/haproxy.sock mode 600 level admin process 1#socket文件
user, group, uid, gid  #运行haproxy的用户身份
nbproc   n #开启的haproxy worker 进程数,默认进程数是一个
#nbthread 1 #和多进程 nbproc配置互斥(版本有关,CentOS8的haproxy1.8无此问题),指定每个haproxy进程开启的线程数,默认为每个进程一个线程,如果同时启用nbproc和nbthread 会出现以下日志的错误,无法启动服务
cpu-map 1 0   #绑定haproxy worker 进程至指定CPU,将第1个work进程绑定至0号CPU
cpu-map 2 1     #绑定haproxy worker 进程至指定CPU,将第2个work进程绑定至1号CPU
maxconn n   #每个haproxy进程的最大并发连接数
maxsslconn n   #每个haproxy进程ssl最大连接数,用于haproxy配置了证书的场景下
maxconnrate n   #每个进程每秒创建的最大连接数量
spread-checks n #后端server状态check随机提前或延迟百分比时间,建议2-5(20%-50%)之间,默认值0 pidfile #指定pid文件路径
log 127.0.0.1 local2 info #定义全局的syslog服务器;日志服务器需要开启UDP协议,最多可以定义两个

Proxies配置

defaults [] #默认配置项,针对以下的frontend、backend和listen生效,可以多个name也可以没有name
frontend    #前端servername,类似于Nginx的一个虚拟主机 server和LVS服务集群。
backend    #后端服务器组,等于nginx的upstream和LVS中的RS服务器
listen      #将frontend和backend合并在一起配置,相对于frontend和backend配置更简洁,生产常用

Proxies配置-defaults

   option redispatch     #当server Id对应的服务器挂掉后,强制定向到其他健康的服务器,重新派发
option abortonclose   #当服务器负载很高时,自动结束掉当前队列处理比较久的连接,针对业务情况选择开启
option http-keep-alive #开启与客户端的会话保持
option forwardfor     #透传客户端真实IP至后端web服务器
mode http|tcp #设置默认工作类型,使用TCP服务器性能更好,减少压力
timeout http-keep-alive 120s #session 会话保持超时时间,此时间段内会转发到相同的后端服务器
timeout connect 120s #客户端请求从haproxy到后端server最长连接等待时间(TCP连接之前),默认单位ms
timeout server 600s #客户端请求从haproxy到后端服务端的请求处理超时时长(TCP连接之后),默认单位ms,如果超时,会出现502错误,此值建议设置较大些,访止502错误
timeout client 600s #设置haproxy与客户端的最长非活动时间,默认单位ms,建议和timeout server相同
timeout check   5s   #对后端服务器的默认检测超时时间
default-server inter 1000 weight 3   #指定后端服务器的默认设置

Proxies配置-listen 简化配置

listen web-80
  mode http
  bind 192.168.144.13:80
  server web1 192.168.144.43:80 check inter 3000 fall 3 rise 5
  server web2 192.168.144.53:80 check inter 3000 fall 3 rise 5

server 配置

	check #对指定real进行健康状态检查,如果不加此设置,默认不开启检查,只有check后面没
有其它配置也可以启用检查功能
 #默认对相应的后端服务器IP和端口,利用TCP连接进行周期性健康性检查,注意必须指定
端口才能实现健康性检查
 addr    #可指定的健康状态监测IP,可以是专门的数据网段,减少业务网络的流量
 port  #指定的健康状态监测端口
 inter  #健康状态检查间隔时间,默认2000 ms
 fall    #后端服务器从线上转为线下的检查的连续失效次数,默认为3
 rise    #后端服务器从下线恢复上线的检查的连续有效次数,默认为2
weight  #默认为1,最大值为256,0(状态为蓝色)表示不参与负载均衡,但仍接受持久连接
backup #将后端服务器标记为备份状态,只在所有非备份主机down机时提供服务,类似 Sorry Server
disabled #将后端服务器标记为不可用状态,即维护状态,除了持久模式,将不再接受连接,状态为深黄色,优雅下线,不再接受新用户的请求
redirect prefix http://www.baidu.com/ #将请求临时(302)重定向至其它URL,只适用于http模式
redir http://www.baidu.com       #将请求临时(302)重定向至其它URL,只适用于http模式
maxconn  #当前后端server的最大并发连接数

你可能感兴趣的:(运维)