做软件负载均衡,主流的方案有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缺点:
- 不支持POP/SMTP协议
- 不支持SPDY协议
- 不支持HTTP cache功能。
- 重载配置的功能需要重启进程,虽然也是soft restart,但没有Nginx的reaload更为平滑和友好。
- 多进程模式支持不够好。
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.
网友评论