使用通用反向代理的原因:
- 您需要处理许多不同的请求,因此只需一个代理来处理所有事情会更简单。
- 使用 nginx 将处理代理请求的所有工作都移除到一个单独的进程,因此它不会对您的 nodejs 服务器造成任何负载。
- nginx“可能”比您在 nodejs 中自己的代码更具可扩展性,因为 nginx 已经针对这些类型的事情进行了高度优化。但是,如果这对您的决定来说是一个有意义的驱动因素,您就必须进行衡量,看看情况是否真的如此(如果不进行衡量,就无法确定地预测)。
让您的 nodejs 服务器完成工作的原因:
- 您可以在允许使用代理请求之前进行特定于应用程序的身份验证。
- 您可以设计特定于应用程序的请求,让您的客户端仅指定您想要指定的内容,然后您的 nodejs 服务器可以将其转换为第 3 方网站请求,使用默认值填充某些部分等...
- 您可以将代理响应调整为您的客户端需要的数据,从而加快客户端响应速度并削减服务器带宽成本。
- 您可以将针对目标的多个请求合并为客户端和 nodejs 服务器之间的单个请求/响应,从而使您能够创建更高效的请求,尤其是在移动或慢速链接上。
哪个更好完全取决于特定的请求以及您正在优化的具体内容。我们不能说一个比另一个更好,因为它们各有优缺点,因此最终归结为在您的系统中哪些优点和缺点对您更重要。