haproxy怎么配置文件backend

60次阅读
没有评论

共计 2615 个字符,预计需要花费 7 分钟才能阅读完成。

本篇内容主要讲解“haproxy 怎么配置文件 backend”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“haproxy 怎么配置文件 backend”吧!

配置示例:

backend htmpool
 mode http
 option redispatch
 option abortonclose
 balance static-rr
 cookie SESSION_COOKIE insert indirect nocache
 option httpchk GET /index.jsp
 server 237server 192.168.81.237:8080 cookie server1 weight 6 check inter 2000 rise 2 fall 3
 server iivey234 192.168.81.234:8080 cookie server2 weight 3 check inter 2000 rise 2 fall 3

这个部分通过 backend 关键字定义了一个名为“htmpool”的后端真实服务器组。下面介绍每个选项的含义。

option redispatch:此参数用于 cookie 保持的环境中。在默认情况下,HAProxy 会将其请求的后端服务器的 serverID 插入到 cookie 中,以保证会话的 SESSION 持久性。而如果后端的服务器出现故障,客户端的 cookie 是不会刷新的,这就出现了问题。此时,如果设置此参数,就会将客户的请求强制定向到另外一个健康的后端服务器上,以保证服务的正常。

option abortonclose:如果设置了此参数,可以在服务器负载很高的情况下,自动结束掉当前队列中处理时间比较长的链接。

balance:此关键字用来定义负载均衡算法。目前 HAProxy 支持多种负载均衡算法,常用的有如下几种:

roundrobin:是基于权重进行轮询调度的算法,在服务器的性能分布比较均匀的时候,这是一种最公平、最合理的算法。此算法经常使用。

static-rr:也是基于权重进行轮询的调度算法,不过此算法为静态方法,在运行时调整其服务器权重不会生效。

source:是基于请求源 IP 的算法。此算法先对请求的源 IP 进行 hash 运算,然后将结果与后端服务器的权重总数相除后转发至某个匹配的后端服务器。这种方式可以使同一个客户端 IP 的请求始终被转发到某特定的后端服务器。

leastconn:此算法会将新的连接请求转发到具有最少连接数目的后端服务器。在会话时间较长的场景中推荐使用此算法,例如数据库负载均衡等。此算法不适合会话较短的环境中,例如基于 HTTP 的应用。

uri:此算法会对部分或整个 URI 进行 hash 运算,再经过与服务器的总权重相除,最后转发到某台匹配的后端服务器上。

uri_param : 此算法会根据 URL 路径中的参数进行转发,这样可保证在后端真实服务器数量不变时,同一个用户的请求始终分发到同一台机器上。

hdr(name) : 此算法根据 http 头进行转发,如果指定的 http 头名称不存在,则使用 roundrobin 算法进行策略转发。

cookie:表示允许向 cookie 插入 SESSION_COOKIE,每台服务器的 SERVERID 可在下面的 server 关键字中使用 cookie 关键字定义。

option httpchk:此选项表示启用 HTTP 的服务状态检测功能。HAProxy 作为一款专业的负载均衡器,它支持对 backend 部分指定的后端服务节点的健康检查,以保证在后端 backend 中某个节点不能服务时,把从 frotend 端进来的客户端请求分配至 backend 中其他健康节点上,从而保证整体服务的可用性。

“optionhttpchk”的用法如下:

option httpchk method uri version

其中,各个参数的含义如下:

method:表示 HTTP 请求的方式,常用的有 OPTIONS、GET、HEAD 几种方式。一般的健康检查可以采用 HEAD 方式进行,而不是才采用 GET 方式,这是因为 HEAD 方式没有数据返回,仅检查 Response 的 HEAD 是不是 200 状态。因此相对与 GET 来说,HEAD 方式更快,更简单。

uri:表示要检测的 URL 地址,通过执行此 URL,可以获取后端服务器的运行状态。在正常情况下将返回状态码 200,返回其他状态码均为异常状态。

version:指定心跳检测时的 HTTP 的版本号。

server:这个关键字用来定义多个后端真实服务器,不能用于 defaults 和 frontend 部分。

使用格式为:

server name address [:port] [param*]

其中,每个参数含义如下:

name:为后端真实服务器指定一个内部名称,随便定义一个即可。

address:后端真实服务器的 IP 地址或主机名。

port:指定连接请求发往真实服务器时的目标端口。在未设定时,将使用客户端请求时的同一端口。

[param*]:为后端服务器设定的一系参数,可用参数非常多,这里仅介绍常用的一些参数:

check:表示启用对此后端服务器执行健康状态检查。

inter:设置健康状态检查的时间间隔,单位为毫秒。

rise:设置从故障状态转换至正常状态需要成功检查的次数,例如。“rise 2”表示 2 次检查正确就认为此服务器可用。

fall:设置后端服务器从正常状态转换为不可用状态需要检查的次数,例如,“fall 3”表示 3 次检查失败就认为此服务器不可用。

cookie:为指定的后端服务器设定 cookie 值,此处指定的值将在请求入站时被检查,第一次为此值挑选的后端服务器将在后续的请求中一直被选中,其目的在于实现持久连接的功能。上面的“cookie server1”表示 web1 的 serverid 为 server1。同理,“cookie server2”表示 web2 的 serverid 为 server2。

weight:设置后端真实服务器的权重,默认为 1,最大值为 256。设置为 0 表示不参与负载均衡。

backup:设置后端真实服务器的备份服务器,仅仅在后端所有真实服务器均不可用的情况下才启用。

到此,相信大家对“haproxy 怎么配置文件 backend”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-14发表,共计2615字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)