Преимущества обратного прокси перед Node.JS - PullRequest
40 голосов
/ 20 июля 2011

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

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

Спасибо.

Ответы [ 3 ]

34 голосов
/ 20 июля 2011

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

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

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

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

9 голосов
/ 20 июля 2011

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

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

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

Edit:

0 голосов
/ 25 мая 2019

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

...