有关http可不可以在服务器端设置是否支持keep-alive

有关http可不可以在服务器端设置是否支持keep-alive,第1张

      在实际生产环境中负载均衡是一个至关重要的位置,负载均衡关乎着整个网站访问的命脉,所以运维人员对于它的处理机制和高可用的重视非常高,负载均衡存在单点故障无疑是对整个网站埋下了定时炸d,nginx +keeplive实现负载高可用,保障业务持续提供服务避免负载均衡的单点故障。

角色                IP地址                主机名

负载01            10002               LB01

负载02            10003               LB02

虚拟服务         10004                       

      两台nginx负载均衡+keepalive实现负载高可用两台LB的IP地址分别为:10002、10003 keepalive的vip为:10004,当10002正常在vip工作在10002,10003服务出现宕机则vip自动跳转到10003的LB

    我们可以看见两台LB中的负载配置相同,server name为vip,当请求到达vip所在的LB服务器则会代理到对应的node池进行负载均衡,通过keepalive的vip漂移为我们的服务提供高可用,保障网站724提供服务
         通过演示视频我们模拟LB01宕机,发现vip漂移至第二台LB并且这个切换对于用户是无感知的,今天nginx+keepalive的测试就到这里谢谢!

主备服务器因为硬件或者软件问题(网线松动或者nginx进程)造成keepalived服务无法检测到心跳信息,nginx服务down掉keepalive还在正常运行没有进行主备切换等等都会造成高可用没有达到理想的效果我们可以通过主备机脚本来规避这些因素造成keepalive无法正常主备切换

    主机能不通,VIP在备机则认为非正常主备切换可能主机状态正常vip在主备机都存在

判断主机nginx服务是否正常,如果nginx服务down掉尝试启动,如果nginx尝试启动未成功则停掉主机keepalive服务切换至备机保证业务正常运行  

通过以上两个脚本检测,我们能够做到规避主备之间心跳检测不正常,但是主备机服务正常会存在主备之间都会有VIP导致负载脑裂的问题以及负载服务down掉,keepalive服务正常导致业务中断问题。

使用wrk压测,待测服务多节点

通过域名访问nginx对比直连,压测时性能损耗很大的问题

1) 原因:经查询TCP状态,通过nginx压测时,目标服务器会出现大量TIME_WAIT

ss -ant | awk 'NR>1 {++s[$1]} END {for(k in s) print k,s[k]}'

2) 为什么:TCP释放连接,服务端发送FIN至进入CLOSED状态的时间间隔

在 高并发短连接 的TCP服务器上,当服务器处理完请求后立刻主动正常关闭连接。这个场景下会出现大量socket处于TIME_WAIT状态

所以问题定位到应该是nginx的connection可能不是keepalive

3) tcpdump流量,由nginx转发的数据header → Connection: close;由直连方式请求的数据header为空,而>

TCP keepalive 和 >

傻傻分不清的TCP keepalive和>

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13475946.html

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

发表评论

登录后才能评论

评论列表(0条)

保存