阿里云slb服务器负载均衡对后端服务器的健康检查方式有哪些

阿里云slb服务器负载均衡对后端服务器的健康检查方式有哪些,第1张

支持4层和7层检查,4层检查简单来说就是连接一下tcp端口看能否连接。7层检查目前支持HTTP和HTTPS,用户需要提供一个URL,健康检查会定期去访问这个URL,如果返回的HTTP CODE是200的话认为健康,否则认为出错。

前段时间出差,在北京现场遇到一个F5网络不通问题,现记录下来以备后面查阅。

问题解决方案很简单,主要记录下排查过程中的思路。

现场环境是使用F5做负载均衡,即F5对外提供服务地址和端口,F5负载转发请求到后端业务服务器。环境是客户的测试环境,F5也是客户的。我们向客户提交F5转发策略和F5健康检查策略,等待网络开通。本来以为不用担心这一块问题,但客户的网络部门配置完成后,网络一直不通。由于未接触过F5所以前面不知怎么和客户沟通,后拿到F5账号和密码,登录进去后开始定位问题。

进去F5登录界面后,看到配置的转发策略中,后端服务器健康检查是失效的,即F5认为后端服务器不在线。这是怎么回事?

这里首先弄清F5健康检查规则是怎么回事?

F5健康检查规则是指F5在一定周期内向后端服务器发送请求来确认后端服务器是否在线。

如下图:

图中 Send String 就是 F5发送的请求字段, Receive String 是F5接收到响应后对比字段,只要响应中有对比字段则认为成功。Receive String为空时,F5接收到响应就认为成功。

继续排查F5健康检查失效问题。

问题主要在两点:1 发送请求字段写的有问题。2接收的响应中没有包含200 OK,匹配不上。

上述这两点通过抓包可以分析。因为现场没法登陆F5服务器上去抓包,下面就利用nc工具模拟F5发请求。

nc 全名 Netcat (网络刀),是一个强大的网络工具,可以模拟发送http请求。

下面在和业务服务器同网段的任意一台服务器上装上nc 工具。

然后使用nc 命令发送请求,请求如下:

引号中的请求字段和F5中sendString一致。

利用nc 发送http请求后,得到的响应如下:

把得到的结果复制到一个html文件中,然后打开如下:

现在F5健康检查问题找到了:是因为业务服务器返回400错误,但F5匹配200 OK, 没有匹配上造成F5认为服务器有问题。

继续看问题,nginx为啥会返回错误码400?

这也是本片文章重头戏。

网上查询原因如下:Nginx官方文档介绍,400状态码含义如下:

上面是http1.1的rfc关于host部分的解释,从上面我们了解到如果一个http1.1的请求没有host域,那么server应该给client段发送400的状态码,表明这个请求server不能处理。而对于Nginx server来说,也遵循这样的方式,说明client发送了一个无效的请求,Nginx server无法处理,于是返回了400的状态码。

本次故障中,客户端的调用方式没有使用host 参数,传递了空的Host头给服务端,一旦Nginx设置了proxy_set_header Host $http_host,空Host头就传给了后端。然而,在http 1.1的规范中,Host只要出现空,就会返回400,所以出现了这个故障。

最后,重新修改发送规则如下:这里HOST随便写一个地址就可以。

利用nc 命令测试,结果如下:

F5修改发送规则后,终于网路联通了,如下图:

至此,问题解决。

ELB是Amazon Web Services (AWS)中的一种服务,全称为Elastic Load Balancer。它是一种用于平衡负载的系统,可以在多台服务器之间分发网络流量。

ELB的主要目的是为了解决在大流量情况下的服务器的性能问题,它能够提供高可用性和负载均衡,并且还能够扩展到多台服务器以满足高流量的需求。

ELB的工作方式是通过将网络流量分发到多台服务器来实现的。当用户发送请求时,ELB会将请求转发到其中一台服务器上,然后服务器会处理请求并返回响应。如果服务器在处理请求时出现问题,ELB会将请求转发到其他服务器上,以确保服务的可用性。

在使用ELB时,用户可以选择使用多种负载均衡策略。例如,可以根据请求的来源IP地址或者端口号来均衡负载。也可以使用基于响应时间的负载均衡策略,即将请求转发到响应时间最短的服务器上。

此外,ELB还提供了健康检查功能,可以检测服务器的健康状态,并在发现问题时将流量转发到其他服务器上。这样,就可以确保服务器的高可用性,并且可以防止因服务器出现故障而导致的网络中断。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/323530.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存