主要是使用 nginx 作为一组上游服务器的负载均衡器有什么区别。或者使用小型 NodeJS 代理服务器,它的作用就像一堆服务器和一个公共(public)托管之间的代理。
这对你来说可能看起来很明显,但对我来说 nginx 非常新。我对此几乎一无所知..
另外,我想我的问题是,使用 nginx 作为分配负载的代理服务器与运行自己的 Node js 代码(在其他请求之间充当代理)相比是否有任何性能优势。
最佳答案
如果引入 +1 技术,我会说保留自定义 NodeJS 代理作为短期解决方案。
长期解决方案是 Nginx 作为后端阵列中的反向代理,从技术和维护方面的原因来看,它具有很大的意义。应用程序很少保持不变,因为您应用新功能、替换旧代码并部署新代码,因此方法是使用正确的工具完成正确的任务。 Nginx 已被许多网络上的重负载应用程序验证并选择。内存消耗和CPU利用率低且稳定。
大多数人使用 Nginx 作为反向代理(顺便说一句,这是使用 Nginx 的最大原因)而不是其他任何东西,因为它是如此强大和功能强大。
从请求-响应生命周期中,如果给定的后端死机,Nginx 会在后端之间不断轮换以再次发送请求,因此甚至不会丢失一个请求。
从维护的角度来看,带有 Rest 接口(interface)的动态上游(商业安装的一部分)看起来足够好。即使是开源版本也很容易推出上游更新+优雅的重新加载(HUP 信号)。 Nginx还支持零停机二进制升级(USR2+QUIT)。
关于node.js - Nginx负载均衡不就是像代理服务器一样吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29291811/