什么是更好的方法:使用Express或nginx提供静态文件?

时间:2017-06-28 07:23:29

标签: node.js express nginx static-files

我正在构建Node.js应用程序,并且我使用nginx作为反向代理。我的应用程序有一些我需要提供的静态文件和一个Socket.io服务器。

我知道我可以使用Express直接提供静态文件(使用express.static中间件)。此外,我可以将nginx直接指向我的静态文件所在的目录,因此它们将由nginx提供。

所以,问题是:哪一个更好的方法?在使用每种方法时,我可以面对哪些优点和缺点?

2 个答案:

答案 0 :(得分:29)

用于开发:表达,主要是因为它提供了灵活性......您可以在开发过程中非常轻松地更改静态位置和结构

用于制作: nginx ,因为它要快得多。 Node / express适用于执行逻辑,但是对于提供原始内容......没有什么可以击败nginx。您还可以获得其他功能,例如gzip,负载平衡...

尽管如此,已经多次在stackoverflow中询问过这个问题:参见

答案 1 :(得分:6)

The Express documentation explicitly recommends using a reverse proxy where possible。引用this article

  

Nginx可以更好地处理静态文件,并可以防止对非动态内容的请求阻塞我们的节点进程。

有很多关于这个主题的文章更详细,但我肯定会听取Express开发人员提出的建议。