Что лучше: служить статические файлы с Экспресс или nginx?

Я строю узел.приложения js, и я использую nginx в качестве обратного прокси. В моем приложении есть статические файлы, которые мне нужно обслуживать, и сокет.сервер ввода-вывода.

Я знаю, что могу обслуживать статические файлы напрямую с помощью Express (используя express.static middleware). Также я могу указать nginx непосредственно в каталог, где находятся мои статические файлы, чтобы они обслуживались nginx.

Итак, вопрос: какой из них является лучшим подходом? С какими плюсами и минусами я могу столкнуться при использовании каждого подхода?

2 ответов


развитие: экспресс, главным образом из-за гибкости она обеспечивает... вы можете изменить свое статическое местоположение и структуру очень легко во время разработки

для производства: nginx и, потому что это намного быстрее. Node / express хороши для выполнения логики, но для обслуживания необработанного контента... ничто не может победить nginx. Вы также получаете дополнительные возможности, такие как gzip, балансировка нагрузки...

тем не менее, этот вопрос был задан в stackoverflow уже несколько раз: см.


в документации Express явно рекомендуется использовать обратный прокси-сервер, где это возможно. Цитата из в этой статье:

Nginx может сделать гораздо лучшую работу по обработке статических файлов и может предотвратить запросы на нединамический контент от засорения наших процессов узла.

есть очень много статей, обсуждающих эту тему, которые идут более подробно, но я бы определенно прислушался к рекомендациям, сделанным Экспресс-разработчики.