Подтвердить что ты не робот

Преимущества обратного прокси-сервера перед Node.JS

В чем преимущества наличия nginx или другого веб-сервера, работающего как обратный прокси-сервер перед Node.JS? Что он предоставляет?

(Этот вопрос предназначен для вопросов, касающихся веб-приложений, а не веб-страниц).

Спасибо.

4b9b3361

Ответ 1

Я думаю, что самое большое преимущество в том, что вы можете использовать один и тот же порт (80) для нескольких приложений. В противном случае вам понадобится новый IP-адрес для каждого приложения nodejs, которое у вас есть. В зависимости от того, как вы настроите настройки, вы также можете настроить разные папки и поддомены для разных приложений nodejs, работающих на разных портах. Если вы строите что-то большое или сложное, это очень здорово. Представьте, что вы можете запускать свои API-интерфейсы в одном приложении node, на вашем веб-сайте с другого пользователя и на входе в веб-сайт (область участников, панель мониторинга и т.д.) В другом приложении. Ваш балансировщик нагрузки может определить, кому нужно идти туда (example.com/api* → api.js, example.com/dashboard* → dashboard.js, example.com → app.js). Это не только полезно для масштабирования, но и когда все ломается, не все сразу прерывается.

К зрелости, мех. Nodejs + forever + node-http-proxy= Удивительно. Запустите 1 прокси-сервер для всех ваших приложений с минимальной конфигурацией/сложностью (меньшая вероятность сбоя). Тогда получайте удовольствие от всего остального. Не забывайте, что брандмауэр отключен от ваших внутренних портов, хотя ;).

Некоторые люди отмечают балансировку нагрузки, которая истинна, является преимуществом. Однако балансировка нагрузки не является чем-то, что выиграет большинство людей, поскольку поток с одним потоком, неблокирующий nodejs может обрабатывать довольно впечатляюще большие нагрузки. Я бы даже не подумал об этом как о разнице, если бы я был вами. Балансировка нагрузки достаточно проста для реализации, когда вам это нужно, но в остальном совершенно бесполезно, пока вы не сделаете.

Также обратите внимание: если вы идете с прокси-сервером без node (nginx, торнадо и т.д.), просто убедитесь, что НЕ используйте тот, который блокирует. Блоки Apache. Nginx этого не делает. Вы не хотите выбрасывать одно из самых больших преимуществ использования nodejs в первую очередь на crummy сервере.

Ответ 2

Наличие более зрелого программного обеспечения в качестве прокси-сервера лучше для обеспечения безопасности и надежности. Nginx, Apache и другие были протестированы против множества случаев и использовались в производстве в течение многих лет.

Вы также можете использовать функции с этого веб-сервера, которые в противном случае вам придется реализовать самостоятельно или использовать модуль node.js. Как кэширование, статистика, балансировка и т.д.

С другой стороны, вы потеряете некоторые функции из node.js, функций в реальном времени, таких как websockets (на порте 80, вы все равно можете использовать другие порты), буферизации страниц и в зависимости от используемого обратного прокси-сервера, контролировать кеширование и заголовки.

Изменить:

Ответ 3

Обратный прокси-сервер действительно помогает повысить производительность, особенно если вы имеете дело со сжатием SSL и gzip. Также есть много других преимуществ. Спасибо Томасу Хантеру II (Встроенный). Читайте весь блог здесь https://medium.com/intrinsic/why-should-i-use-a-reverse-proxy-if-node-js-is-production-ready-5a079408b2ca