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 по " Настройка экземпляра в качестве сетевого прокси-сервера" может послужить хорошим руководством.
Стоит отметить, что переполнение стека, как правило, предназначено для разработчиков, а ошибка сервера предназначена для системных и сетевых администраторов.