gpt4 book ai didi

node.js - Nginx 用于 Node JS 应用程序中的身份验证和授权

转载 作者:搜寻专家 更新时间:2023-11-01 00:42:43 25 4
gpt4 key购买 nike

我正在使用 expressJS 在 nodejs 中开发应用程序,为了优化性能,我决定将 Nginx 与 NodeJS 一起使用(根据我的结论,在阅读了很多关于 Nginx + NodeJS 的文章之后)。
我将 Nginx 和 NodeJS 的任务划分如下:

Nginx

  1. 提供静态文件
  2. 身份验证
  3. 授权

Node JS

  1. 与数据库交互的动态 API 处理

以上述方式设计应用程序是个好主意吗?
如果是,那么如何使用 Nginx 在 Node JS 应用程序中处理身份验证和授权?
如果不是,那么在 NodeJS 应用程序中处理负载的更好方法是什么?

最佳答案

您的概念存在根本性缺陷。 Nginx 的速度很快,可以通过 http 提供内容。将 nginx 放在 node.js 的前面不会提供任何性能改进。 Nginx 可以用作负载均衡器,在多个主机之间平均分配流量,但它本身并没有提供任何性能优势,除了它非常高效。那就是说 Nginx 不打算处理授权/身份验证,除了 http 基本身份验证。

您应该编写自己的逻辑来处理身份验证和授权。要扩展,您应该无状态地编写代码,以便您可以跨多个服务器运行。因此,您应该将 session 数据存储在诸如内存缓存之类的地方,或者使用类似 JWT 的东西创建无状态系统。 .

此外,您不应使用 node.js 提供内容。 Nginx 在这方面更快。所以只使用 Node.js 提供模板,允许 Nginx 缓存和提供静态内容。此范例还允许您利用内容分发网络。这是利用 nginx 擅长的内容服务的唯一真正方法。

优化并不是让事情变得超快。当您遇到性能障碍或需要提高系统效率以防止过早扩展时,就会发生优化。

关于node.js - Nginx 用于 Node JS 应用程序中的身份验证和授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28956480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com