Какой подход лучше: обслуживание статических файлов с помощью Express или nginx?
Я строю узел.приложения js, и я использую nginx в качестве обратного прокси. В моем приложении есть несколько статических файлов, которые мне нужно обслуживать, и Socket.io сервер.
Я знаю, что могу обслуживать статические файлы напрямую с помощью Express (используя express.статическое промежуточное ПО). Кроме того, я могу указать nginx непосредственно на каталог, в котором находятся мои статические файлы, чтобы они обслуживались nginx.
Итак, вопрос: какой из подходов лучше? С какими плюсами и минусами я могу столкнуться при использовании каждого из них подходить?
2 ответа:
Для разработки: express , главным образом из-за гибкости, которую он обеспечивает... вы можете очень легко изменить свое статическое местоположение и структуру во время разработки
Для производства: nginx , потому что его гораздо быстрее. Node / express хороши для выполнения логики, но для обслуживания необработанного контента... ничто не может победить нгинкса. Вы также получаете дополнительные возможности, такие как gzip, балансировка нагрузки...
Тем не менее, этот вопрос был задан в stackoverflow несколько раз уже: смотрите
В экспресс-документации явно рекомендуется по возможности использовать обратный прокси-сервер . Процитируем из этой статьи:
Nginx может гораздо лучше справляться со статическими файлами и предотвращать засорение наших узловых процессов запросами на нединамическое содержимое.
Есть очень много статей, обсуждающих эту тему, которые идут более подробно,но я бы определенно прислушался к рекомендациям, сделанным разработчиками Express.