![我如何决定是否需要将 HAProxy 引入到我的 Web 应用程序的 nginx-unicorn 堆栈中?](https://linux22.com/image/577579/%E6%88%91%E5%A6%82%E4%BD%95%E5%86%B3%E5%AE%9A%E6%98%AF%E5%90%A6%E9%9C%80%E8%A6%81%E5%B0%86%20HAProxy%20%E5%BC%95%E5%85%A5%E5%88%B0%E6%88%91%E7%9A%84%20Web%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%20nginx-unicorn%20%E5%A0%86%E6%A0%88%E4%B8%AD%EF%BC%9F.png)
我正在构建一个基于服务的 Web 应用程序。它由一个纯粹用于处理请求的主要 rails 应用程序和许多其他用于实际处理这些请求的 sinatra 服务组成。
我决定使用 Unicorn 作为我的 Rails 应用程序的实际网络服务器。
我的困境在于选择正确的堆栈。我读过一些关于 HAProxy 负载平衡的优秀评论,我认为这是长期发展的方向。另一方面,我认识的一些人也说,当我将 nginx 与 unicorn 一起使用时,nginx 就足够好了。
目前,我的整个系统将驻留在一台服务器上。将来,不同的服务器可能会托管不同的服务。
引入 haproxy 是否会引入不必要的开销?使用 HAproxy 和 nginx 到底能给我带来什么好处?
答案1
是的,haproxy 完全没有必要。Unicorn 会在它的工作器之间进行自己的“负载平衡”。当你需要多台机器时,你能使用 haproxy,但我更喜欢 IPVS 之类的 L3 解决方案。