首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >HAProxy vs. Nginx

HAProxy vs. Nginx
EN

Stack Overflow用户
提问于 2014-01-17 05:41:53
回答 4查看 43.1K关注 0票数 47

我正在考虑使用HAProxy和Nginx进行负载均衡,我有一些问题:

  • 我是否应该仅使用HAProxy而不是Nginx作为代理服务器?
  • 是否有理由将HAProxy和Nginx安装在同一代理服务器上?

谢谢

EN

回答 4

Stack Overflow用户

发布于 2014-01-17 16:24:12

haproxy是一个“负载均衡器”,它不知道如何服务文件或动态内容。nginx是一个web服务器,可以做很多有趣的事情。如果你只需要负载均衡+ HA某个第三个web服务器,那么haproxy就足够了。如果在第三个服务器上终止请求之前,您需要在路由中实现一些静态内容或一些逻辑,那么您可能需要nginx。

你可以在同一台主机上看到haproxy+nginx的原因是,它允许你关闭单个nginx实例,而haproxy继续为来自其他主机的请求提供服务。想象一下,有一个使用A记录的RR DNS:

代码语言:javascript
复制
myapp.com IN A 1.1.1.1
myapp.com IN A 1.1.1.2

其中,1.1.1.1和1.1.1.2是配置了haproxy+nginx的两台主机,用于在它们之间进行负载平衡。现在,由于某些原因,您的1.1.1.1的nginx出现故障。发布到1.1.1.1的浏览器仍然由haproxy提供服务,而haproxy则从1.1.1.2的nginx获取数据。

希望能有所帮助

票数 75
EN

Stack Overflow用户

发布于 2021-01-08 17:12:12

HAProxy绝对是更好的、功能更全的负载均衡器(与免费的nginx相比,而不是nginx plus (但也有人会争辩))。

遗憾的是,HAProxy仍然不能做的一件事是通用的UDP连接。因此,我们在日志lbs上使用了HAProxy和nginx。但是HAProxy在2.3中发布了对syslog/udp的支持,所以我们将要改变这一点。:)

票数 8
EN

Stack Overflow用户

发布于 2021-11-10 14:41:58

我们将HAProxy和nginx一起使用。原因有很多。

Nginx可以做任何事情(或多或少),但你不希望你的负载均衡器服务于网页。配置中的一些错误(可能与负载平衡无关),您的整个设置就会突然停止。假设您有一个Nodejs应用程序、一个Dotnet核心应用程序、由Nginx提供服务的静态文件和一个php应用程序。你只是犯了一些错误,你的4个应用程序就会停滞不前。如果每个应用程序都有多个实例,那么您也失去了冗余。

即使你说Nginx只会做负载均衡,Nginx也不支持代理协议,如果你转发到其他不提供页面服务的服务器,这是有问题的。

此外,做一件事并把它做好也是可以说的。Nginx是当今的主要工具箱。它几乎可以做任何事情。负载均衡器应该是设置中最稳定的部分。难道你不喜欢使用专门为负载平衡而构建的东西吗?

如果你使用清漆,那么HAProxy可以很好地使用它,事实上,它们都是由同一个人制作的。

如果您想要增加一个平衡级别,那么您还可以使用dns作为具有多个HAPROXY实例的负载均衡器。Dns不是为这个perse而设计的,但是你总会有一些薄弱环节。您的负载均衡器也可能崩溃,即使它由您的云提供商管理。如果您的dns条目中有多个服务器,现在大多数web浏览器都会尝试其他服务器,因此它就像一个负载均衡器。您的dns应该非常可靠,从而增加您的正常运行时间。

我们使用2个haproxy实例和2个varnish实例以及两个dns条目。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21173496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档