Я ищу отзывы о развертывании приложений Node.js в Google Cloud Compute.
В настоящее время мы используем балансировщик нагрузки HTTP от Google и направляем трафик непосредственно в наш пул ящиков Node.js.
У меня конкретный вопрос: как это делают другие? Вы позволяете трафику от балансировщика нагрузки HTTP GCE напрямую попадать в ваше приложение Node.js ИЛИ вставляете ли вы другой обратный прокси-сервер внутри вашей частной сети, например HAProxy или NGINX, для передачи трафика на Node.js?
Мне кажется немного избыточным наличие другого обратного прокси, но мне любопытно, есть ли какие-либо соображения безопасности и т. Д. Я упускаю из виду, открывая Node для GCE HTTP LB.
Спасибо
Если вы будете следовать инструкциям, приведенным в этом Справочном центре статья, трафик пересылается на серверную часть с использованием прокси-сервера после попадания в IP-адрес LB. Таким образом, общедоступный IP-адрес вашего приложения будет IP-адресом правила переадресации.
Недавно я создал аналогичное развертывание в Rackspace и решил запустить несколько экземпляров node.js на каждой виртуальной машине (равное количеству процессоров) и сбалансировать нагрузку между ними с помощью NGINX. Я рассматривал возможность использования HAProxy, но я больше знаком с NGINX, но они оба будут работать одинаково хорошо. Затем я использовал Load Balancer, предоставляемый Rackspace, для балансировки нагрузки между виртуальными машинами. Я выбрал этот подход, потому что я выполняю завершение SSL для экземпляра NGINX, а также сжатие. Еще одна причина такого подхода заключается в том, что я предоставляю экземпляры с помощью SaltStack, и с его помощью гораздо проще управлять узлами NGINX, чем с помощью LB Rackspace.
Несмотря на то, что уровень NGINX / HAProxy кажется избыточным, он сохраняет модульную систему с четко разделенными функциями. Теоретически дополнительный уровень должен добавить некоторую задержку, но она настолько мала, что я бы не стал беспокоиться об этом.