我正在构建一个基于服务的 Web 应用程序。它由一个纯粹用于处理请求的主要 rails 应用程序和许多其他用于实际处理这些请求的 sinatra 服务组成。
我决定使用 Unicorn 作为我的 Rails 应用程序的实际网络服务器。
我的困境在于选择正确的堆栈。我读过一些关于 HAProxy 负载平衡的优秀评论,我认为这是长期发展的方向。另一方面,我认识的一些人也说,当我将 nginx 与 unicorn 一起使用时,nginx 就足够好了。
目前,我的整个系统将驻留在一台服务器上。将来,不同的服务器可能会托管不同的服务。
引入 haproxy 是否会引入不必要的开销?使用 HAproxy 和 nginx 到底能给我带来什么好处?
答案1
是的,haproxy 完全没有必要。Unicorn 会在它的工作器之间进行自己的“负载平衡”。当你需要多台机器时,你能使用 haproxy,但我更喜欢 IPVS 之类的 L3 解决方案。