我在考虑使用 HAProxy 和 Nginx 进行负载均衡,我有一些问题:
- 我应该只使用 HAProxy 而不是 Nginx 作为代理服务器吗?
- 是否有任何理由将 HAProxy 和 Nginx 安装在同一台代理服务器上?
最佳答案
Haproxy 是一个“负载均衡器”,它不知道要提供文件或动态内容。 nginx 是一个可以做很多有趣事情的网络服务器。如果您只需要负载平衡 + 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 获取数据。
关于nginx - HAProxy 与 Nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21173496/