HAProxy 入门实战(5)--bind 和 server 参数选项

"bind"、"server"和"default-server"关键字支持多种设置,这些设置通常由一个单词组成,有时后面跟着一个值;这些设置在相同的行上写入。

1、bind 参数选项

"bind"关键字支持一些设置,这些设置都作为参数放在相同的行上。这些参数出现的顺序并不重要,只要它们出现在绑定地址之后即可。所有这些参数都是可选的。其中一些参数由一个单词(布尔值)组成,而其他参数在它们之后需要一个值。在这种情况下,值必须紧跟在设置名称之后提供。

1.1、参数说明

选项 说明
ca-file <cafile> 指定 CA 证书,用于验证客户端证书
crt <cert> 指定代理服务的证书,如果证书中不包含私钥,HAProxy 将尝试在相同路径下加载  "证书 +.key"的密钥文件
force-sslv3 强制使用 SSLv3 协议;相对于TLS协议,SSLv3 通常在高连接速率下具有更低的开销
force-tlsv10 强制使用 TLSv1.0 协议
force-tlsv11 强制使用 TLSv1.1 协议
force-tlsv12 强制使用 TLSv1.2 协议
force-tlsv13 强制使用 TLSv1.3 协议
maxconn <maxconn> 设置同时连接的最大套接字数量;如果未指定,则限制将与前端的最大连接数(maxconn)相同
no-sslv3 禁用 SSLv3 协议
no-tlsv10 禁用 TLSv1.0 协议
no-tlsv11 禁用 TLSv1.1 协议
no-tlsv12 禁用 TLSv1.2 协议
no-tlsv13 禁用 TLSv1.3 协议
ssl 启用 SSL
v4v6 当使用默认地址时,支持 IPv4 和 IPv6
v6only 当使用默认地址时,仅支持 IPv6
verify [none|optional|required]

none:不请求客户端证书

optional:请求客户端证书,如果客户端没用提供证书,则握手成功;如果客户端提供证书,则验证证书

required:请求并验证客户端证书

1.2、使用样例

bind 0.0.0.0:6060 ssl crt /home/mongo/soft/haproxy-2.8.2/ssl/server.pem ca-file /home/mongo/soft/haproxy-2.8.2/ssl/ca.pem verify required

2、server 和 default-server 参数选项

“server”和“default-server”参数支持一些设置,这些设置都作为参数放在相同的行上。这些参数出现的顺序没有影响,并且它们都是可选的。其中一些设置是单词(布尔值),而其他设置在其后需要一个或多个值,在这种情况下,这些值必须紧跟在设置名称之后。对于"server",所有这些设置都必须在服务器地址之后指定。

除了"id"只被"server"支持外,所有这些设置都被"server"和"default-server"两个参数支持。

2.1、参数说明

选项 说明
addr <ipv4|ipv6> 使用不同的IP地址进行健康检查
backup 设置服务器为备用服务器
ca-file <cafile> 指定 CA 证书,用于验证服务端证书
check 启用对服务器的健康检查
check-ssl 健康检查时使用SSL
ciphers <ciphers> 设置SSL/TLS握手期间协商的密码算法
cookie <value> 设置服务的 cookie 值,用于会话保持
crt <cert> 设置发送给服务端的证书, 如果证书中不包含私钥,HAProxy 将尝试在相同路径下加载  "证书 +.key"的密钥文件
disabled 设置服务器为停用状态
enabled 设置服务器为启用状态
error-limit <count> 健康检查时,连续错误该参数指定的次数后,将触发由"on-error"参数指定的事件;默认为 10
fall <count> 连续<count>次不成功的健康检查后,服务器将被视为失效;默认值为 3
force-sslv3 与服务器通信时强制使用 SSLv3 协议
force-tlsv10 与服务器通信时强制使用 TLSv1.0 协议
force-tlsv11 与服务器通信时强制使用 TLSv1.1 协议
force-tlsv12 与服务器通信时强制使用 TLSv1.2 协议
force-tlsv13 与服务器通信时强制使用 TLSv1.3 协议
id <value> 设置 server 的 id,如果未设置则自动分配

inter <delay>
fastinter <delay>
downinter <delay>

inter 用于设置健康检查的间隔,默认为 2000毫秒;fastinter 和 downinter 用于根据服务器状态设置健康检查状态;
服务器状态为 "UP 100%" 时使用 inter
服务器状态为 "Transitionally UP" 或 "Transitionally DOWN" 或 未检测时,如果设置了 fastinter 则使用它,否则使用 inter
服务器状态为 "DOWN 100%" 时,如果设置了 downinter 则使用它,否则使用 inter

maxconn <maxconn> 设置发送到此服务器的最大并发连接数;默认为 0,表示无限制
maxqueue <maxqueue> 设置此服务器的缓冲连接队列的大小;默认为 0,表示无限制
minconn <minconn> 设置发送到此服务器的最小并发连接数
no-backup 设置服务器为非备用服务器
no-check 停用对服务器的健康检查
no-check-ssl 健康检查时禁用SSL
no-ssl 禁用 SSL
no-sslv3 与服务器通信时禁用 SSLv3 协议
no-tlsv10 与服务器通信时禁用 TLSv1.0 协议
no-tlsv11 与服务器通信时禁用 TLSv1.1 协议
no-tlsv12 与服务器通信时禁用 TLSv1.2 协议
no-tlsv13 与服务器通信时禁用 TLSv1.3 协议
no-verifyhost 不验证服务器主机名
on-error <mode> 在检测到足够连续的错误时,采取的操作
port <port> 使用不同的端口进行健康检查
rise <count> 健康检查连续成功一定次数后,服务器将被视为可用;默认为 2

source <addr>[:<pl>[-<ph>]] [usesrc { <addr2>[:<port2>] | client | clientip } ]
source <addr>[:<port>] [usesrc { <addr2>[:<port2>] | hdr_ip(<hdr>[,<occ>]) } ]
source <addr>[:<pl>[-<ph>]] [interface <name>] ...

设置哪些地址可以连接到服务器
ssl 连接服务器时启用 SSL
verify [none|required] 是否验证服务器证书
verifyhost <hostname> 验证服务器主机名,只有在指定了'verify required'时才生效
weight <weight> 设置服务器的权重,默认为 1

2.2、使用样例

server tomcat1 127.0.0.1:7070 cookie server1 weight 3 check inter 2000 rise 2 fall 3
server tomcat2 127.0.0.1:8080 cookie server2 weight 3 check inter 2000 rise 2 fall 3

 

 

参考:http://docs.haproxy.org/2.8/configuration.html#5

posted @ 2023-10-29 10:50  且行且码  阅读(138)  评论(0编辑  收藏  举报