【问题标题】:Should I use both Nginx AND HAProxy for production node app?我应该将 Nginx 和 HAProxy 都用于生产节点应用程序吗?
【发布时间】:2015-07-17 08:06:18
【问题描述】:

我有一个 node/express/postgres 应用程序。我在一个节点上有 postgres 数据库,我计划在一个单独的负载均衡器后面有几个应用程序节点,这样我就可以水平扩展。

我将我的应用程序节点设置为每个在节点应用程序前面运行 nginx。所以我让 nginx 在端口 80 上侦听,并将 Web 请求转发到正在侦听端口 3000 的同一个盒子上的节点应用程序。

然后我打算把 HAProxy 放在前面来处理 SSL 终止和跨应用程序节点的负载平衡

我的问题:在这种情况下,nginx 已经过时了吗?让 HAProxy 只转发到端口 3000 上的应用程序节点会更好吗?

在每个应用程序节点上安装 nginx 有什么好处吗? 我不会提供任何静态文件。我的节点应用程序是一个仅返回 JSON 数据的 REST api。节点应用永远不会呈现或提供任何 html。

【问题讨论】:

    标签: node.js nginx haproxy


    【解决方案1】:

    在这种情况下,Nginx 和 HAProxy 都具有相同的目的:从通过久经考验的 http 服务器代理来访问 Internet 的其余部分。这意味着在这种情况下,在节点前面有两个 http 代理是多余的。

    但是,在某些情况下您可能想要这样做。如果您的节点服务器位于机器集群上,并且它们都可以访问 Internet,并且都可以从 Internet 访问,那么您可能希望使用另一个 http 代理(例如 Nginx 或 Apache 或 lighttpd)来保护每台机器。

    一般来说,您可以使用防火墙保护机器。但有时将每台机器直接暴露在网络上是有意义的。

    【讨论】:

      【解决方案2】:

      我只会使用 HAProxy 代理到应用程序节点。

      拥有 Nginx 会增加另一个潜在的故障点,HAProxy 必须对 Nginx 和 node.js 进行健康检查以确保它们是健康的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多