我将部署我的node.js应用程序。
我可以仅使用node.js来启动自己的Web应用程序。
但是我的父亲告诉我,最好在apache或nginx下提供该Web应用程序。
任何人都有这种经验,为什么我们需要apache,因为我只能在node.js + express上启动我的Web应用程序?
我想了解更多有关部署方面的知识。谢谢你的帮助。
成套工具
最佳答案
在未开发的应用程序中,将Apache置于Node的前面并不常见。我可以授予的唯一情况是,如果您的公司在前端基于Apache的基础架构(监视/安全/路由/缓存等)上已有投资,而sysadmin则坚持这种设置。
有些人喜欢将nginx或haproxy放在前面来管理路由规则,因此他们可以将对静态文件( Assets )的请求从Node.js转移出去(在处理静态文件时,node.js并不总是高效的),或者花哨的负载平衡或故障转移。在0.2.x等的早期,甚至Ryan Dahl都提倡在Node.js前面运行一些内容,主要是为了提高安全性。虽然,我认为没有发现任何重大问题。我亲自在Node.js前面运行nginx,因为我们有多个站点和服务都达到了前端共享IP,我们将这些代理返回到监听不同内部端口的各种 Node 实例。
Nginx比Apache更适合,因为它轻巧并且每个请求的线程比Apache线程(在大多数常规设置中)。但是如今,甚至有一个可靠的(不包含node-http-proxy)前端基于Node.JS的代理http://www.github.com/substack/bouncy,名人node.js开发人员之一将使用/将用于前端PaaS。
关于apache - 为什么在Node.js Express Web框架下需要Apache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9287747/