Рейтинг:1

Как использовать субдомен с подстановочным знаком со статическими субдоменами в сервисах Google Cloud?

флаг de

Предположим, мы владеем доменом пример.com. В Google Cloud я хотел бы добиться следующей настройки.

Доступны две службы Cloud Run по адресу api-a.example.com и api-b.example.com.

В App Engine работает третья серверная служба, доступная по адресу api-c.example.com.

Существует докеризированный контейнер Nginx с внешним интерфейсом, развернутым в App Engine по адресу интерфейс-a.example.com. Это интерфейс для внутреннего приложения, используемого сотрудниками нашей компании.

Последний сервис — еще один докеризированный Nginx. Он должен быть доступен на поддомене с подстановочным знаком. *.example.com. Если ни один из субдоменов, упомянутых выше, не совпадает, запрос должен попасть сюда. Мы предлагаем SaaS, и у каждого клиента есть собственный поддомен, например клиент-1.example.com. Эти поддомены не определены и постоянно меняются, поэтому мы хотели бы использовать подстановочный знак.

Домен пример.com без поддомена не используется.

Возможно ли это и если да, то как?

djdomi avatar
флаг za
wgat является основным источником всех запросов в Интернете? я имею в виду, что на example.com работает какой веб-сервер?
jz22 avatar
флаг de
Я добавил еще некоторые детали. Спасибо.
djdomi avatar
флаг za
я бы предложил иметь одну точку, которая связывает все запросы, и использование обратного прокси-сервера для вещей может облегчить вам работу.
Рейтинг:1
флаг us

Это возможно, и вы можете выполнить следующие шаги, чтобы добиться этого:

  1. Создайте управляемую зону: (в этом примере была создана частная зона, но это та же процедура для общедоступной)
управляемые зоны gcloud dns создают частный домен \
    --description=частный-домен-пример \
    --dns-name=example.com \
    --visibility=частный
  1. Создайте отдельные записи, включая подстановочный знак, указывающий на ваш докеризированный сервис Nginx: (обратите внимание на точку в конце имени записи с подстановочным знаком)
gcloud dns запись-устанавливает начало транзакции\
   --zone=частный домен

gcloud dns запись-наборы транзакций добавить 10.10.3.2 \
   --name=*.example.com. \
   --ttl=86400 \
   --тип=А \
   --zone=частный домен

gcloud dns запись-наборы транзакций добавить 10.10.1.2 \
   --name=api-a.example.com \
   --ttl=86400 \
   --тип=А \
   --zone=частный домен

gcloud dns запись-наборы транзакций добавить 10.10.1.3 \
   --name=api-b.example.com \
   --ttl=86400 \
   --тип=А \
   --zone=частный домен

gcloud dns запись-наборы транзакций добавить 10.10.2.2 \
   --name=api-c.example.com \
   --ttl=86400 \
   --тип=А \
   --zone=частный домен

gcloud dns запись-наборы транзакций добавить 10.10.2.3 \
   --name=frontend-a.example.com \
   --ttl=86400 \
   --тип=А \
   --zone=частный домен

gcloud dns устанавливает транзакцию выполнения \
   --zone=частный домен

При такой настройке любой запрос к домену example.com, который не определен явно, будет отправлен службе Nginx, которая является записью с подстановочными знаками. Полную документацию по Cloud DNS, в том числе по управлению записями, можно найти в этом документе. 1.

Примечание. Сценарий был воссоздан с использованием экземпляров ВМ в GCP и, следовательно, IP-адресов в поле RR_DATA в записях, чтобы создать запись DNS для служб App Engine; вам нужно следовать этому руководству 2.

John Hanley avatar
флаг cn
Ваш ответ **не** будет работать в общественном достоянии. Ваш ответ **не** будет работать с Cloud Run или App Engine с частной зоной.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.