HAProxy和Nginx负载均衡分析

栏目: Nginx · 发布时间: 6年前

内容简介:出于对负载均衡工具的疑问,分别对HAProxy和nginx的负载均衡进行了抓包分析,分析的过程跟大家分享下。

出于对负载均衡 工具 的疑问,分别对HAProxy和Nginx的负载均衡进行了抓包分析,分析的过程跟大家分享下。先说下对HAProxy抓包得到的结论吧:HAProxy在负载均衡的一台后端挂掉后,如果还没达到探测的时间点时,请求还会往挂掉的这台转发,请求会丢失。

HAProxy负载均衡的实验过程如下:

1: 先看下HAProxy的配置。配置inter 20000为20s检测一次,这个是为了更明显的抓下HAProxy的负载均衡探测机制。

2: 后端我是用Nginx进行测试,看下Nginx的配置如下。可在/var/www/html/建个index.html进行测试

先用curl 127.0.0.1:9090进行测试,并在机器上开两个窗口看下抓包是否均衡正常,两个窗口运行的命令分别如下:tcpdump -i lo -nn ‘port 90’      tcpdump -i lo -nn ‘port 91’看下负载均衡能否正常工作。

HAProxy和Nginx负载均衡分析

HAProxy和Nginx负载均衡分析

上面抓包的截图证明Nginx监听的90和91端口都有在监听。使用抓包来检测比看日志来更细点,所以还是用抓包来分析了。

3: 抓包查看HAProxy的健康检测机制

因为我们配置了inter 20000,也就是告诉HAProxy 20s检测一次,抓包查看也是20s检查一下。注意下,这个检测是在客户端无任务请求的时候进行探测的,也就是处理请求跟探测是分开的。

HAProxy和Nginx负载均衡分析

4: 模拟线上故障,Nginx挂掉91端口

把listen  91这个Nginx的配置去除,然后reload一下,会发现前端的请求如果分发到91端口的话,就会挂掉,经抓包发现HAProxy需要探测三次才会把故障的给切下线。我们配置的是20s探测一次,也是最长可能得探测60s才能把故障的切除掉。如果这60s内有1w请求的话,那就会丢掉5k个。如果用在线上的话,探测机制肯定不会是20s一次,一般最多3s会切换掉。

HAProxy和Nginx负载均衡分析

Nginx负载均衡的配置如下:

1: 先看下Nginx的反向代理负载均衡配置,如下:

还是把配置打向后端的90和91端口,然后后面再模拟故障的发生。

前端还是使用9090来监听,把请求转发到90和91端口。

2: 后端我还是是用Nginx进行测试,看下Nginx的配置如下。可在/var/www/html/建个index.html进行测试

抓包同样会发生90和91的包都有过来。

3: 抓包查看Nginx反向代理负载均衡的健康检测机制

抓包你会发现Nginx在没有请求的时候,90和91端口上没有任务的请求。也就是在没有请求的时候,是不会对后端的代理服务器进行检测的。

4: 模拟线上故障,Nginx挂掉91端口

把listen  91这个Nginx的配置去除,然后reload一下,发现前端的访问没有任务影响。抓包如下,请求有打包91,但由于91没请求到数据。Nginx的均衡还会再次去90上取数据。也就是说,Nginx如果后端挂掉91端口的话,对前端的请求没有任务影响,只要并发支撑得住的话。

HAProxy和Nginx负载均衡分析

HAProxy和Nginx负载均衡分析

综合一下:

HAProxy对于后端的服务器就算请求没过来也有一直在健康检测,发现有故障的时候在请求没到来的时候会切掉,但如果在检测期间请求到达的话,会有异常。HAProxy只会把请求转到后端的一台服务器。

Nginx对于后端的服务器没有一直在健康检测,请求过来的时候,分发还是进行分发,只是请求不到数据的时候,会再向好的机器进行请求,直到请求正常为止。Nginx请求转到后端一台不成功的话,还会转向另外一台服务器。同时我也测试了下squid,发现squid跟Nginx的反向代理负载均衡很相似。

所以如果有用HAProxy做为前端负载均衡的话 ,如果后端服务器要维护,在高并发的情况,肯定是会影响用户的。但如果是Nginx做为前端负载均衡的话,只要并发撑得住,后端切掉几台不会影响到用户。至于两者的性能,得再继续研究。


以上所述就是小编给大家介绍的《HAProxy和Nginx负载均衡分析》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深度学习轻松学

深度学习轻松学

冯超 / 电子工业出版社 / 2017-7 / 79.00

《深度学习轻松学:核心算法与视觉实践》介绍了深度学习基本算法和视觉领域的应用实例。书中以轻松直白的语言,生动详细地介绍了深层模型相关的基础知识,并深入剖析了算法的原理与本质。同时,书中还配有大量案例与源码,帮助读者切实体会深度学习的核心思想和精妙之处。除此之外,书中还介绍了深度学习在视觉领域的应用,从原理层面揭示其思路思想,帮助读者在此领域中夯实技术基础。 《深度学习轻松学:核心算法与视觉实......一起来看看 《深度学习轻松学》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

SHA 加密
SHA 加密

SHA 加密工具