我正在考虑使用HAProxy和Nginx进行负载均衡,我有一些问题:
谢谢
发布于 2014-01-17 16:24:12
haproxy是一个“负载均衡器”,它不知道如何服务文件或动态内容。nginx是一个web服务器,可以做很多有趣的事情。如果你只需要负载均衡+ HA某个第三个web服务器,那么haproxy就足够了。如果在第三个服务器上终止请求之前,您需要在路由中实现一些静态内容或一些逻辑,那么您可能需要nginx。
你可以在同一台主机上看到haproxy+nginx的原因是,它允许你关闭单个nginx实例,而haproxy继续为来自其他主机的请求提供服务。想象一下,有一个使用A记录的RR DNS:
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获取数据。
希望能有所帮助
发布于 2021-01-08 17:12:12
HAProxy绝对是更好的、功能更全的负载均衡器(与免费的nginx相比,而不是nginx plus (但也有人会争辩))。
遗憾的是,HAProxy仍然不能做的一件事是通用的UDP连接。因此,我们在日志lbs上使用了HAProxy和nginx。但是HAProxy在2.3中发布了对syslog/udp的支持,所以我们将要改变这一点。:)
发布于 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条目。
https://stackoverflow.com/questions/21173496
复制相似问题