首页 > 教育培训

linux上怎么看是否有nginx进程 haproxy和nginx的区别?

haproxy和nginx的区别?

nginx和haproxy其实定位不一样。nginx定位为服务器,haproxy定位为负载均衡器。

nginx可以通过各种插件模块支持负载均衡的功能,性能也不比haproxy弱多少,所以总有人拿这两样东西做比较。其实apache也可以通过相关模块做负载均衡器,但是性能差很多,所以没人用。当然,nginxslb功能现在是它的主要功能。

我看到大家对haproxy的多进程有很多误解。特别是这里,haproxy早就支持多进程模型,但它不是nginx的workermaster结构,而是一个平等的多进程结构,它还支持重用端口选项。所以nginx和haproxy在多核利用上没有本质区别。

linux上怎么看是否有nginx进程 haproxy和nginx的区别?

1.8以后,haproxy增加了多线程模式,现在推荐这个模式,在一些平台上可以更好的利用多核。nginx一直没有多线程模型。而且社区似乎不打算支持它。

nginx其实是基于服务器的功能,这是haproxy没有的。haproxy很难像普通web服务器一样回复一个普通的http请求,不大规模修改源代码是不可能做到的。haproxy是围绕转发模型设计的,整个过程都是围绕着如何快速转发一个请求或者回复给另一端。it这不像服务器接受请求然后回复。

但是nginx作为一个纯lb,尤其是针对web负载均衡器的,并没有haproxy那么细致。haproxy支持广泛的acl对象。在许多情况下,复杂的功能可以在没有脚本的帮助下完成,而nginx的稍微复杂的负载平衡功能需要用脚本来完成,所以性能会差很多。

从功能上看,nginx其实比haproxy的功能更多(当然不是全部免费),因为它的开发社区和定位方向比haproxy更大更广。nginx上还有很多解决方案。比如waf和haproxy都没有更好的原生解决方案。还有就是最近对servicemesh的支持,haproxy很难跟上。

但是基本功能,包括http2、tls1.3、脚本、ssl/tls卸载、ocsp、sni预加载realhaproxy的最新版本支持了很久,甚至比nginx还要早(http2晚,但现在也支持了)。另外硬件ssl卸载支持其实主要是openssl的引擎支持,所以这个和大家差不多,只要兼容最新的openssl就没有问题。

haproxy的优势其实是转发性能略高。因为haproxy追求的是零拷贝的正向过程,所以代码倾向于这方面的优化。然而,这个优势现在被tls/ssl的广泛应用抹杀了。相比0copy节省的时间,加解密的性能占了绝大部分,所以haproxy在目前粗放的ssl环境下基本没有优势。除非你想用纯http,也想用基于http头的复杂负载均衡功能,那么haproxy是个不错的选择,否则如果只是lb,lvs性能其实更高,毕竟人在内核。

从代码层面来看,nginxs的结构化代码和模块化比haproxy好很多。haproxy代码的模块化一直是个大问题。内部结构不够模块化,二次开发难度大。最近才改进到1.9,但是还是有很多内部的招数hack和混淆旗。与nginxs的彻底模块化,通过开发自己的模块,很容易改变或实现相关功能,这是haproxy所不具备的。

从开发社区来说,nginx比haproxy好太多了。虽然社区历史更久,但haproxy一直都是无动于衷的。由于原作者的严格控制,一直以来贡献者很少,也没有模块开发功能,所以并没有吸引多少开发者。问题是版本更新慢,支持的新功能也慢。http2的开发完全依赖原作者,所以支持进度严重滞后。

这篇文章好像成了对haproxy的吐槽,但我觉得我还是有些了解的,因为我在工作中接触这两个东西太多了,也在深度开发。目前,如果haproxy可以不招募更多的贡献者更公开和完全修改架构,以支持模块开发,它可以不能和nginx比。

另外,haproxy的优势在于免费版的功能比nginx更实惠。对于小而差的网站来说,这确实是一个好处。

nginxworker进程多少个合适?

我的回答:类似nginxworker的工作派生进程的数量一般等于cpu的核心总数或核心数的两倍。例如,两个4核cpu处理器,那么核的总数是8。

在中设置worker_processs8一般进程设置为cpu核数的1-2倍。

haproxyhaproxynginx功能模块

原文标题:linux上怎么看是否有nginx进程 haproxy和nginx的区别?,如若转载,请注明出处:https://www.xinyige.net/tag/23436.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「鑫艺阁」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。