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

Каковы преимущества использования nginx или другого веб-сервера в качестве обратного прокси-сервера перед Node.JS? Что это дает?

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

Спасибо.

2 ответа

Решение

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

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

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

Также обратите внимание, что если вы используете неузловое решение для прокси (nginx, tornado и т. Д.), Просто НЕ используйте тот, который блокирует. Апач блокирует. Nginx нет. Вы не хотите отбрасывать одно из величайших преимуществ использования nodejs в первую очередь на грязном сервере.

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

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

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

Редактировать:

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

Другие вопросы по тегам