栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

仅使用Node.js与将Node.js与Apache / Nginx结合使用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

仅使用Node.js与将Node.js与Apache / Nginx结合使用

将另一个Web服务器放在Node.js前面有几个充分的理由:

  • 不必担心Node.js进程的特权/ setuid。通常只有root可以绑定到端口80。如果让nginx / Apache担心以root身份启动,绑定到端口80,然后放弃其root特权,则意味着您的Node应用程序不必担心。
  • 提供图片,css,js和html等静态文件。与使用适当的静态文件Web服务器相比,Node的效率可能较低(Node在某些情况下也可能更快,但这不太可能成为常态)。除了可以更高效地提供文件之外,您不必担心像在Node之外提供服务时那样处理eTag或缓存控件标头。某些框架可以为您解决此问题,但是您需要确定。无论如何,仍然可能会更慢。
  • 正如Matt Sergeant在回答中提到的那样,如果您的节点服务崩溃,您可以更轻松地显示有意义的错误页面或退回到静态站点。否则,用户可能只会获得超时连接。
  • 在Node前面运行另一个Web服务器可能有助于减轻安全漏洞和针对Node的DoS攻击。对于一个实际示例,通过在Node前面运行Nginx之类的内容来防止CVE-2013-4450。

我要说明第二点,说您可能应该通过CDN或从类似Varnish的缓存服务器后面提供静态文件。如果执行此操作,则源是Node还是Nginx或Apache都没有关系。

请特别注意nginx:如果您使用的是websocket,请确保使用最新版本的nginx(> =
1.3.13),因为它仅添加了对升级升级以使用websocket的支持。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/403873.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号