What's the better approach: serving static files with Express or nginx?

限于喜欢 提交于 2019-12-31 20:46:46

问题


I'm building a Node.js applications and I'm using nginx as a reverse proxy. My application has some static files I need to serve and a Socket.io server.

I know that I can serve static files directly with Express (using express.static middleware). Also I can point nginx directly to the directory where my static files are located, so they would be served by nginx.

So, the question: which one is the better approach? Which pros and cons can I face while using each approach?


回答1:


for development: express, mainly because of flexibility it provides... you can change your static location and structure very easily during development

for production: nginx, because its much much faster. Node/express are good for executing logic, but for serving raw content... nothing can beat nginx. You also get additional capabilities such as gzip, load balancing...

Nevertheless, this question has been asked in stackoverflow a number of times already: see

  • node.js itself or nginx frontend for serving static files? or
  • Using Node.js only vs. using Node.js with Apache/Nginx or
  • Which is most efficient : serving static files directly by nginx or by node via nginx reverse proxy?



回答2:


The Express documentation explicitly recommends using a reverse proxy where possible. To quote from this article:

Nginx can do a much better job of handling static files and can prevent requests for non-dynamic content from clogging our node processes.

There's an awful lot of articles discussing the subject which go into greater detail, but I would definitely heed the recommendations made by the Express developers.



来源:https://stackoverflow.com/questions/44796056/whats-the-better-approach-serving-static-files-with-express-or-nginx

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!