社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NGINX

软件负载均衡(Haproxy和Nginx对比)

瓦蓝钢镚 • 6 年前 • 415 次点击  

做软件负载均衡,主流的方案有LVS、Haproxy、Nginx

参考资料:
https://www.cnblogs.com/EasonJim/p/7629888.html
https://blog.csdn.net/qlj324513/article/details/81541282



Haproxy和Nginx对比

Haproxy特点
支持TCP与Http协议,工作在网络4层和7层
支持Session共享、Cookies引导
支持通过URL健康检测
支持8种负载均衡策略
支持心跳检测
HAPorxy缺点

  1. 不支持POP/SMTP协议
  2. 不支持SPDY协议
  3. 不支持HTTP cache功能。
  4. 重载配置的功能需要重启进程,虽然也是soft restart,但没有Nginx的reaload更为平滑和友好。
  5. 多进程模式支持不够好。

Nginx特点
支持Http协议,工作在网络7层
支持通过端口健康检测
支持强大的正则匹配规则
支持WebSocket协议
支持Http Cache
Nginx缺点
1、适应范围较小,仅能支持http、https、Email协议。
2、对后端服务器的健康检查,只支持通过端口检测,不支持url来检测。比如用户正在上传一个文件,而处理该上传的节点刚好在上传过程中出现故障,Nginx会把上传切到另一台服务器重新处理,而LVS就直接断掉了,如果是上传一个很大的文件或者很重要的文件的话,用户可能会因此而不满。



对于Http协议,Haproxy处理效率比Nginx高。
通常,没有特殊要求的时候或者一般场景,建议使用Haproxy来做Http协议负载。
但如果是Web应用,那么建议使用Nginx



mode http #默认的模式mode { tcp|http|health }, tcp是4层,http是7层 ,health只会返回OK


自从nginx 1.9 以后通过stream模块实现了tcp 代理功能,无需其他软件配合即可实现四层代理和七层代理。
参考: http://nginx.org/en/
https://blog.51cto.com/moerjinrong/2287680

nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev . For a long time, it has been running on many heavily loaded Russian sites including Yandex , Mail.Ru , VK , and Rambler . According to Netcraft, nginx served or proxied 25.79% busiest sites in November 2019 . Here are some of the success stories: Dropbox , Netflix , Wordpress.com , FastMail.FM .

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/50844