nginx反向代理还是nodejs获取?

时间:2021-02-05 00:11:58

标签: node.js nginx cors

为了处理网站CORS问题,我有两个选择。

  1. nginx 反向代理
  2. 网站获取 nodejs,nodejs 获取目标,然后只发回我需要的部分数据,这将压缩 50% 的大小。

考虑用户体验 和服务器的效率, 哪种方式更好?

非常感谢。

1 个答案:

答案 0 :(得分:0)

使用通用反向代理的原因:

  1. 您需要处理许多不同的请求,因此只需一个代理来处理所有事情会更简单。
  2. 使用 nginx 将处理代理请求的所有工作都移除到一个单独的进程,因此它不会对您的 nodejs 服务器造成任何负载。
  3. nginx“可能”比您在 nodejs 中自己的代码更具可扩展性,因为 nginx 已经针对这些类型的事情进行了高度优化。但是,如果这对您的决定来说是一个有意义的驱动因素,您就必须进行衡量,看看情况是否真的如此(如果不进行衡量,就无法确定地预测)。

让您的 nodejs 服务器完成工作的原因:

  1. 您可以在允许使用代理请求之前进行特定于应用程序的身份验证。
  2. 您可以设计特定于应用程序的请求,让您的客户端仅指定您想要指定的内容,然后您的 nodejs 服务器可以将其转换为第 3 方网站请求,使用默认值填充某些部分等...
  3. 您可以将代理响应调整为您的客户端需要的数据,从而加快客户端响应速度并削减服务器带宽成本。
  4. 您可以将针对目标的多个请求合并为客户端和 nodejs 服务器之间的单个请求/响应,从而使您能够创建更高效​​的请求,尤其是在移动或慢速链接上。

哪个更好完全取决于特定的请求以及您正在优化的具体内容。我们不能说一个比另一个更好,因为它们各有优缺点,因此最终归结为在您的系统中哪些优点和缺点对您更重要。