Haproxy

Haproxy位置

这里写图片描述

配置段

global:全局配置段
进程及安全配置相关的参数
性能调整相关参数
Debug参数
proxies:代理配置段
defaults:为frontend, backend, listen提供默认配置
fronted:前端,相当于nginx, server {}
backend:后端,相当于nginx, upstream {}
listen:同时拥有前端和后端,适用于一对一环境

示例:

frontend web
    bind *:80
    default_backend    websers
backend websers
    server ser1 192.168.6.6:80 check
    server ser1 192.168.6.7:80 check

全局配置 global

进程及安全管理: chroot, deamon, user, group, uid, gid

nbproc :要启动的haproxy的进程数量,系统默认单进程,要求使用daemon模式

ulimit-n :每个haproxy进程可打开的最大文件数,系统自动会指定,不建议设置daemon 后端方式运行,建议使用

log:定义全局的syslog服务器;最多可以定义两个log<address> [len <length>] <facility> [max level[min level]]

address: rsyslog服务器地址
len: 记录日志的长度,默认1024

记录日志

# 默认发往本机的日志服务器;
vi /etc/rsyslog.conf
(1) local2.*    /var/log/haproxy.log
(2) 去掉注释
$ModLoad imudp
$UDPServerRun 514

远端记录日志

# haproxy配置文件
log         远端服务器IP  local2
# 发往远端的日志服务器;
vi /etc/rsyslog.conf
(1) local2.*    /var/log/haproxy.log
(2) 去掉注释
$ModLoad imudp
$UDPServerRun 514

日志管理

capture cookie <name> len <length>:捕获请求和响应报文中的 cookie并记录日志

capture request header <name> len <length> :捕获请求报文中指定的首部并记录日志

示例:

capture request header X-Forwarded-For len 15
capture response header <name> len <length>

捕获响应报文中指定的首部并记录日志

示例:

capture response header Content-length len 9
capture response header Location len 15

性能调整:

  • maxconn <number>
    设定每个haproxy进程所能接受的最大并发连接数
  • maxconnrate <number>
    设置每个进程每秒种所能建立的最大连接数量
  • maxsessrate <number>
    设置每个进程每秒种所能建立的最大会话数量
  • maxsslconn <number>
    每进程支持SSL的最大连接数量
  • spread-checks <0..50, in percent>
    健康检测延迟时长比建议2-5之间

代理配置段 proxies

defaults <name>
frontend <name>
backend <name>
listen <name>

配置参数
bind:指定一个或多个前端侦听地址和端口
bind [<address>]:<port_range> [, ...] [param*]
balance:后端服务器组内的服务器调度算法
server <name> <address>[:[port]] [param*]
定义后端主机的各服务器及其选项
server <name> <address>[:port] [settings ...]
default-server [settings …] #为backend中的各server设定默认选项
<name>:服务器在haproxy上的内部名称;出现在日志及警告信息
<address>:服务器地址,支持使用主机名
[:[port]]:端口映射;省略时,表示同bind中绑定的端口
[param*]:参数
weight :权重,默认为1
maxconn :当前后端server的最大并发连接数
backlog :当server的连接数达到上限后的后援队列长度
backup:设定当前server为备用服务器Sorry Server
check:对当前server做健康状态检测,只用于四层检测
注意: httpchk, “smtpchk”, “mysql-check”, “pgsqlcheck” and “ssl-hello-chk” 用于定义应用层检测方法
addr :检测时使用的IP地址
port :针对此端口进行检测
inter <delay>:检测之间的时间间隔,默认为2000ms
rise <count>:连续多少次检测结果为“成功”才标记服务器为可用;默认为2
fall <count>:连续多少次检测结果为“失败”才标记服务器为不可用;默认为3
disabled:标记为不可用
redir <prefix>:将发往此server的所有GET和HEAD类的请求重定向至指定的URL

统计接口启用相关的参数

stats enable
启用统计页;基于默认的参数启用stats page
stats uri : /haproxy?stats uri #默认uri
stats uri <prefix>
自定义stats page uri,默认为
stats auth <user>:<passwd>
认证时的账号和密码,可使用多次
stats realm <realm>
认证时的realm
stats hide-version
隐藏版本
stats refresh <delay>
设定自动刷新时间间隔
stats admin { if | unless } <cond>
启用stats page中的管理功能
配置示例:

listen stats
bind :9999
stats enable #启用统计功能
stats realm HAPorxy\ Stats\ Page
stats auth admin1:password1
stats auth admin1:password2
stats refresh 3s
stats admin if TRUE

工作模式

maxconn <conns>:为指定的frontend定义其最大并发连接数;默认为3000
fullconn <conns>:backend连接数
mode { tcp|http|health } #在default里定义的默认是http
定义haproxy的工作模式
tcp:基于layer4实现代理;可代理mysql, pgsql, ssh,ssl等协议,https时使用此模式,默认模式
http:仅当代理协议为http时使用,centos实际默认模式
health:工作为健康状态检查的响应模式,当连接请求到达时应“OK”后即断开连接,较少使用

错误页配置

errorfile 自定义错误页

<code>: HTTP status code.支持200, 400, 403, 408, 500, 502, 503, 504.
<file>:错误页文件路径

示例:

errorfile 400 /etc/haproxy/errorfiles/400badreq.http
errorfile 408 /dev/null # workaround Chrome preconnect bug
errorfile 403 /etc/haproxy/errorfiles/403forbid.http
errorfile 503 /etc/haproxy/errorfiles/503sorry.http

修改报文首部

在请求报文尾部添加指定首部

reqadd <string> [{if | unless} <cond>]

在响应报文尾部添加指定首部

rspadd <string> [{if | unless} <cond>]

示例:

rspadd X-Via:\ HAPorxy

从请求报文中删除匹配正则表达式的首部

reqdel <search> [{if | unless} <cond>]
reqidel <search> [{if | unless} <cond>] 不分大小写

从响应报文中删除匹配正则表达式的首部

rspdel <search> [{if | unless} <cond>]
rspidel <search> [{if | unless} <cond>] 不分大小写

示例:
rspidel server.*

配置HAProxy支持https协议

# 在前端加上以下3句
frontend  web
    bind 172.18.253.6:80
    redirect scheme https if ! { ssl_fc } #如果请求没有https则重定向https
    bind 172.18.253.6:443 ssl crt /etc/haproxy/haproxy.pem
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值