Answers:
将另一个Web服务器放在Node.js前面有几个充分的理由:
我要说明第二点,说您应该通过CDN或从类似Varnish的缓存服务器后面提供静态文件。如果执行此操作,则起源不是Node还是Nginx或Apache都没有关系。
请特别注意nginx:如果您使用的是websocket,请确保使用最新版本的nginx(> = 1.3.13),因为它仅添加了对升级升级以使用websocket的支持。
:80通过使用authbind 绑定到保留端口,例如无需以root 身份运行节点:thomashunter.name/blog/using-authbind-with-node-js
我相信,只要您知道自己在做什么,就可以在所有情况下使用Node服务静态文件。使用应用服务器来服务于静态文件无疑是一种新的范例,因为许多(每一个?)竞争技术(PHP,Ruby,Python等)都需要在应用服务器之前使用HTTPD或Nginx之类的Web服务器。 。
我曾经阅读过的反对使用Node提供静态文件的客观原因都围绕着使用您最了解的知识或使用经过更好测试/更稳定的知识的想法。从实践上讲,这是非常有效的原因,但几乎没有技术上的相关性。
除非您发现经典Web服务器无法使用Node所具有的功能(我怀疑您会做到),否则请选择您最了解的知识或希望使用的方法,因为这两种方法都很好。
至于Nginx与Apache的关系,它们将与Node相同。您应该比较它们而不考虑Node。
systemd,pm2等等。因此,有优缺点,用户应该挑选自己的毒药,可以这么说。
express.static将处理ETag和缓存控制标头就好了。