【问题标题】:Serve angular in node vs nginx在节点与 nginx 中服务角度
【发布时间】:2019-02-06 18:38:42
【问题描述】:

只是一个简单的问题。

什么会更有益,通过节点使用来自 nginx 的反向代理服务我的 angular 应用程序,还是直接从 nginx 提供服务?

我认为直接从 nginx 提供服务会更快。

【问题讨论】:

  • 感谢大家的回复,这真的很有帮助,我将直接从 nginx 提供角度服务,并使用反向代理节点进行 api 调用。这是一个更好的关注点分离。
  • 我很惊讶对这个问题的支持如此之少。我认为这是非常相关的。

标签: node.js angular nginx


【解决方案1】:

如果您的客户端代码和服务器端代码完全分离(例如,客户端需要运行的任何内容要么预先构建到静态文件中,要么使用您的 rest api 提供服务),那么最好直接从 NGINX 或从 CDN 提供客户端文件。性能和扩展性更好,并且您在服务器上的代码中用于管理缓存等的工作更少,而且您以后可以独立扩展 api。

【讨论】:

    【解决方案2】:

    nginx(作为反向代理)+nodejs - 是最好的选择。

    如果您选择 nginx 作为 nodejs 的前端,您将获得更多好处。 (ssl、http2、配置、负载均衡等)

    如果我们考虑静态文件(js、html、图像) - 将它们缓存在一个地方(nginx 主机配置)更容易,节点也可以很好地处理静态文件。

    我认为 nodejs 引擎/服务器应该只做一件事,那就是应用程序的业务逻辑。

    【讨论】:

    • 但是,如果我通过节点提供角度服务,请求仍然会通过 nginx?
    • 当然可以。 nginx 使用 80/443 端口对这些端口的每个请求都将由 nginx 处理。有问题吗?
    • 是的,但它仍然会利用 ssl、http2 等,但我想知道的是从节点或直接从 nginx 提供角度服务
    • 问题是他应该直接从 NGINX 提供前端文件,还是从位于 NGINX 代理后面的 Node 应用程序提供前端文件。您的回答解释了为什么 NGINX 是好的,而不是为什么组合对于提供静态 angularjs 文件是好的。
    • 直接从 nginx 它与静态文件完美配合。
    【解决方案3】:

    取决于您的负载要求。您可以使用 nginx+node 设置多个实例(运行时)。如果您有高负载 js 应用程序,我建议您使用此解决方案。否则,这无关紧要。

    【讨论】:

      猜你喜欢
      • 2018-10-25
      • 2020-12-11
      • 2016-11-07
      • 2019-03-02
      • 2019-02-26
      • 1970-01-01
      • 2020-03-10
      • 1970-01-01
      • 2017-03-09
      相关资源
      最近更新 更多