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

ser*_*off 18 nginx static-files node.js express

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

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

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

tat*_*ato 34

开发:表达,主要是因为它提供了灵活性......你可以在开发过程中非常容易地改变你的静态位置和结构

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

尽管如此,这个问题已经多次在stackoverflow中被问到:请参阅


Mat*_*aly 7

Express文档明确建议尽可能使用反向代理.引用本文:

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

有很多文章在讨论这个主题时会有更详细的内容,但我肯定会听取Express开发人员提出的建议.