Phi*_*hil 40 apache reverse-proxy nginx webproxy node.js
在Node.JS前面运行nginx或其他Web服务器作为反向代理有什么好处?它提供什么?
(此问题适用于有关网络应用程序的问题,而不是网页).
谢谢.
小智 34
我认为最大的好处是您可以将相同的端口(80)用于多个应用程序.否则,您需要为每个nodejs应用程序提供一个新的IP地址.根据您的设置方式,您还可以将不同的文件夹和子域配置为在不同端口上运行的不同nodejs应用程序.如果你正在建造一个大的或复杂的东西,这是非常好的.想象一下,能够在一个节点应用程序上运行您的API,从另一个节点应用程序运行您的网站,以及在另一个应用程序中运行登录的网站(会员区域,仪表板等).您的负载均衡器可以确定谁需要去哪里(example.com/api* - > api.js,example.com/dashboard* - > dashboard.js,example.com - > app.js).这不仅对缩放很有用,而且当事情破裂时,并不是一切都会破坏.
对于成熟的事情,呃.Nodejs + forever + node-http-proxy = 很棒.为所有应用程序运行1代理服务器,配置/复杂度最小(失败的可能性较低).然后享受其他一切的乐趣.但是,不要忘记关闭内部端口的防火墙;).
有些人注意到负载平衡,这是真的,是一种好处.但是,负载平衡不是大多数人会从中受益的,因为单个线程,非阻塞nodejs线程可以处理非常大的负载.如果我是你,我真的不会认为这是一个区别.负载平衡很容易在您需要时实现,但在您这样做之前完全无用.
另请注意,如果您使用非节点代理解决方案(nginx,龙卷风等),请确保不要使用阻止的解决方案.Apache块.Nginx没有.您不想丢弃在crummy服务器上首先使用nodejs的最大好处之一.
Dio*_*mes 10
使用更成熟的软件作为代理可以提高安全性和可靠性.Nginx,Apache和其他公司已经针对大量案例进行了测试,并在生产中使用了多年.
您还可以使用这些Web服务器中的功能,否则您必须自己实现或使用node.js模块.像缓存,统计,平衡等.
另一方面,你将失去node.js的一些功能,实时功能,如websockets(在端口80上,你仍然可以使用其他端口),页面缓冲和取决于所使用的反向代理,控制你的缓存和标题.
编辑:
| 归档时间: |
|
| 查看次数: |
8306 次 |
| 最近记录: |