Google Cloud TCP LB позволяет работать RTMP и HTTP(S)

У меня есть группа экземпляров вычислительного движка, и мне нужно иметь один статический IP-адрес (с прокси-сервером LB) и мне нужно получать запросы HTTP(S) и RTMP. Мне нужно прикрепить этот прокси к внешнему домену -> example.com

Я уже пытался использовать HTTP lb(не может работать RTMP) и TCP lb (не может работать HTTP-запросы), но, возможно, имеется некоторая неправильная конфигурация или мне нужно сделать HTTP-запрос каким-то конкретным способом для работы на TCP балансировщик нагрузки?

Идеальным решением является то, что когда я делаю запросы к example.com, должны работать и запросы HTTP, и RTMP, обходные пути тоже хороши. Теперь все работает, но example.com указывает на IP 1 управляемого экземпляра, поэтому, если масштаб управляемой группы и этот конкретный экземпляр "умрут", example.com указывает на бесполезный IP.

Мне нужно управлять обоими запросами (RTMP и HTTP) на одном и том же сервере (экземпляр группы)

1 ответ

Решение

Насколько я понимаю, у вас есть следующие требования

1) Статический внешний IP с прокси LB

2) Необходимо захватить запросы HTTP(S) и RTMP.

3) Прокси подключен к внешнему домену, например example.com

4) Бэкэнд должен быть группой управляемых экземпляров

На основе требования и с учетом вариантов балансировки нагрузки GCP:

1) HTTP(S) балансировщик нагрузки не вариант, так как он не будет работать с RTMP

2) SSL Proxy LB не является опцией, так как он не поддерживает порт 80 (пользователь упомянул о HTTP)

3) TCP Proxy LB не является опцией, так как он не поддерживает порт 80, поэтому не будет поддерживать HTTP.

4) Сетевой протокол TCP/UDP LB кажется возможным вариантом для этого сценария, поскольку он поддерживает любые внешние порты для балансировки нагрузки, но проблема в том, что у него нет функции прокси, это просто пропуск через LB.

Сводная информация о порте, поддерживаемом GCP LB, может быть найдена по этой ссылке. Поддерживаемые внешние порты для разных GCP LB и сводка балансировщиков нагрузки в облаке.

Google Cloud Platform не предлагает балансировщик нагрузки прокси-типа, который будет одновременно обрабатывать HTTP на порту 80 и другой старый протокол TCP.

Учитывая всю информацию, лучшим вариантом для этого сценария является создание собственных прокси-виртуальных машин и добавление их в целевой пул за балансировщиком сетевой нагрузки. Таким образом, будет показан IP-адрес балансировщика сетевой нагрузки (запросы на example.com переведены на IP-адрес сетевого LB), а функция прокси будет предоставлена ​​пулом виртуальных машин, работающим в качестве целевого пула для этого балансировщика сетевой нагрузки. Причиной наличия нескольких прокси-виртуальных машин за сетевым LB является устранение единой точки отказа, а также избыточности.

Сетевые LB <----> Прокси-ВМ <-> Бэкэнд-ВМ

Или если вам нужна группа управляемых экземпляров и автоматическое масштабирование, то

Сетевой LB <-> Прокси-виртуальные машины <-> Внутренний LB <-> Группа управляемых экземпляров

В этой настройке прокси-виртуальные машины и ILB должны находиться в одном регионе, так как ILB являются региональными.

Кроме того, если вам нужны рекомендации по настройке прокси-виртуальной машины, документация GCP по " Настройка экземпляра в качестве сетевого прокси-сервера" может послужить хорошим руководством.

Стоит отметить, что переполнение стека, как правило, предназначено для разработчиков, а ошибка сервера предназначена для системных и сетевых администраторов.

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