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> |
inter 用于设置健康检查的间隔,默认为 2000毫秒;fastinter 和 downinter 用于根据服务器状态设置健康检查状态; |
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 } ] |
设置哪些地址可以连接到服务器 |
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