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

serge1peshcoff picture serge1peshcoff · Jun 28, 2017 · Viewed 22.6k times · Source

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?

Answer

tato picture tato · Jun 28, 2017

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