我需要nodejs还是只能依赖Nginx?

时间:2014-04-01 12:46:53

标签: javascript node.js angularjs nginx

我有一个应用程序,如果我们需要使用node.js,我会与同行讨论。

  • 我们的决定是使用angular.js作为前端,并通过REST api与app服务器进行通信。 应用程序服务器不在node.js中。它可以是.net或Java

  • Nginx将在前面,因为它更适合提供静态文件,gzip等。

有许多选项可以对您的角度应用程序进行样板处理,其中许多都包含nodejs。我的第一种方法是使用node.js作为主要Web服务器并将其扩展以解决性能问题。虽然这不是一个好方法,因为节点的角色不能充当Web服务器。好吧,我的问题到了。

记住前面提到的两点是否有任何理由生成包括node.js在内的前端?

有什么东西我可以从中受益吗?

2 个答案:

答案 0 :(得分:0)

这里有简短的回答:如果您已经开始在.net或Java后端使用nginx,并且您只是在寻找angular.js的部署工具,那么只需选择无论javascript部署工具有意义,都可以用节点构建。

接下来是更多的阐述:

我不太确定你的意思"节点的角色不能充当网络服务器" ...如果你的意思一般,那么&#34如果你的意思是你的应用服务器是.net或java,而不是javascript,那就很好。

一般来说,nginx对静态文件的执行速度会更快,但是对于任何人来说,node.js的改进幅度可能毫无意义。如果您需要(或者有意义)将节点作为堆栈的一部分用于角度部署,那么将它用作反向代理并且完全消除nginx是有意义的。您使用nginx获得可衡量的收益的可能性非常小。

那就是说......如果你已经设置了nginx并转移到节点而不是代表你曾经做过的额外工作,那么它就失去了它的主要吸引力。

node.js比其他任何项目都更有意义,因为它在每个级别的Web堆栈中都非常强大。但它不一定比其适当级别的堆栈中使用的单个项目更能更多,并且如果您不打算通过均匀化来降低堆栈的复杂性所涉及的技术和应用,然后它归结为偏好。

答案 1 :(得分:0)

如果您关注静态文件的性能,可以在后端nginx或您选择的服务器前面添加缓存层作为代理.. Varnish-cache是一个不错的选择。

如果您想大规模提供静态文件,还有一个更好的解决方案,您可以通过它在CDN中托管静态文件,这将是您的实时部署的更好的解决方案。云端服务是为易于使用而构建的并且具有成本效益,例如fastly.com是托管静态文件的一个很好的选择,它具有在Varnish-Cache之上构建的非常持久的缓存层。Cloud front如果你是comparison benchmarks也是另一个选择亚马逊服务的粉丝。

可能有用的更多资源是拥有热门服务器的here,还有另一个基准测试{{3}}