nginx的节点VS-HTTP代理(nginx vs node-http-proxy)

2019-07-03 17:17发布

请告诉我什么是最好使用应用程序的NodeJS nginx的或节点的HTTP代理的部署。 什么是最强大的?

我需要的基本特征是

  • 代理所有请求非80后
  • 负载平衡器
  • WebSocket的支持

Answer 1:

下面是关于这个问题的一个伟大的文章http://www.exratione.com/2012/07/proxying-websocket-traffic-for-nodejs-the-present-state-of-play/

个人而言,我已经打了在这个领域有很多的配置,这一切都归结到你需要什么,你需要部署。 如果你是你自己的硬件(或云片等),你只需要支持的节点,然后在端口80节点的HTTP代理是非常强大的,强大的,并允许您采取像的WebSockets和SSL与技术优势有点头疼。

但是,如果你有你需要支持其他网站,说一个Drupal或Grails的网站上,在80 Nginx的面临更标准的做法。 随着中说,没有理由根据需要CGI语言与80节点的HTTP代理和代理业务的Nginx无法安装到端口8080。 这是我的首选配置,我目前在生产环境中运行的内容。 我很高兴至今。 其快速,稳健的,我仍然可以支持的RapidWeaver我的客户网站建设沿一侧使用WebSockets和SSL我自己的应用程序的NodeJS。

哦,负载节点HTTP代理平衡是小菜一碟......看看这个简单的循环例子https://github.com/nodejitsu/node-http-proxy/blob/master/examples/balancer/简单balancer.js

编辑:

我发现,在端口80上运行的节点HTTP代理是不好的做法,因为它需要root用户来执行节点。 相反,使用IP表来重新路由端口80到您的节点-HTTP代理正在运行一个非特权端口。 更妙的设置将穿上80清漆(因为文章说,任何严重的web应用程序应该在它前面的一个HTTP加速器),并请求转发到节点-HTTP代理的非特权端口上。 从这里,它取决于你怎么想您的节点服务器和nginx的平分了交通。

第二个编辑:

Nginx的现在支持WebSockets的! 虽然节点的当前状态是相当能够提供一个完整的堆栈的,但这并不意味着它应该。 我的意思是,在技术上你可以使用螺丝刀砸向钉在墙上的手柄......但为什么会你,如果你有一把锤子坐在那里? 从服务静到复杂的负载平衡,Nginx的是战斗测试和部署在一些最先进的网络。 它是一种没有道理的,现在WebSocket的支持已被添加。



Answer 2:

我被迫使用节点HTTP代理的生产,由于我们要绕过中国互联网墙,恕我直言,这是相当强大的,灵活的。

最近,我正在考虑在其他领域更使用它,所以我谷歌,并获得了以下测试

https://github.com/observing/balancerbattle

根据试验,似乎节点HTTP代理是最慢的。 不过,我觉得性能相差并不多,而这也证明了节点-HTTP代理是健壮了。 当使用节点HTTP代理,我可以纯粹用和的NodeJS建立与只是几包的环境。(我们使用的FreeBSD,我恨打造了很多的包,这是我们永远需要的。)

在使用节点HTTP代理,你写你自己的代理服务器,所以你可以自定义逻辑尽可能多的就可以了。 这实在是没有必要使用nginx的或HAProxy的为微小更好的性能。



文章来源: nginx vs node-http-proxy