Google Cloud Load Balancer - перенаправление субдомена в определенную папку в корзине

В настоящее время у нас есть следующие требования:

У каждого пользователя может быть свой собственный субдомен и папка в Google Storage Bucket с контентом, который должен обслуживаться через этот субдомен, например:

[domain] user1.example.com -> [bucket] example.com/user1/index.html
[domain] user2.example.com -> [bucket] example.com/user2/index.html

Итак, ведро, имеющее структуру ниже:

 - [Bucket] example.com
     - [Folder] user1
       - [File] Index.html
     - [Folder] user2
       - [File] Index.html
     - etc..

Поддомены будут добавляться динамически, и я не могу просто установить правила карты (могу обновить их через API, но я предполагаю, что у них есть ограничения для правил карты).

Также этот HTML-контент должен обслуживаться через HTTPS.

У меня есть настроенный домен, сегмент хранилища, балансировщик нагрузки на GCP, но в настоящее время я застрял с переписыванием URL / пути на LoadBalancer.

Итак, вопрос - можно ли позвонить на user1.example.com и через Load Balancer обслужить HTML-соединение из папки bucket /example.com/user1?

Можно ли заставить его работать с указанной выше архитектурой, или для этого потребуются отдельные сегменты для каждого пользователя, или он будет работать только с отдельным обратным прокси-сервером, который будет перенаправлять трафик в определенную папку / домен?

Спасибо.


person Alex Lobanov    schedule 08.10.2020    source источник


Ответы (1)


Как вы определили, не существует универсального способа сопоставить имя хоста с частью пути. Вы можете иметь отдельные hostRules записи для каждого поддомена, но это ограничивается 50 записями. Вы можете создать совершенно новое правило переадресации и целевой http-прокси для каждых 50 поддоменов, которые у вас есть. который будет увеличиваться, но все еще сложен.

В качестве альтернативы вы можете указать на серверную службу экземпляров, на которых запущен прокси, например Envoy или HAProxy. У них есть мощная система переписывания, которая может это сделать.

person David    schedule 14.10.2020
comment
Спасибо! Я только что создал отдельный экземпляр виртуальной машины, который фактически проксирует запросы в ведро Google. Похоже, что эти маршруты к корзине можно выполнить на AWS, но невозможно на GCP, по крайней мере, на данный момент. - person Alex Lobanov; 01.12.2020