Вопрос или проблема
У меня есть веб-сайт, работающий на Google App Engine. Я хочу, чтобы конкретный субдомен (например, portal.example.com) соответствовал моему веб-сайту. Все остальные субдомены я хочу перенаправить на маркетинговую страницу на другом веб-сайте (например, mycompany.com/product.html).
В настоящее время у меня есть A-записи, указывающие с portal.example.com, example.com и www.example.com на IP-адрес балансировщика нагрузки Google Cloud. Правила сопоставления балансировщика нагрузки перенаправляют любые запросы, которые не соответствуют portal.example.com, на маркетинговую страницу.
Это покрывает большую часть того, что я хочу, так как перенаправляет example.com и www.example.com на маркетинговую страницу. Однако я также хотел бы перенаправить все остальные субдомены (например, other.example.com) на маркетинговую страницу. Я могу создать запись CNAME с подстановочным знаком, чтобы перенаправить эти домены на мой балансировщик нагрузки, но, насколько я понимаю, Google Cloud не позволяет мне создать сертификат SSL с подстановочным знаком для балансировщика нагрузки, поэтому при посещении одного из этих других доменов в браузере появляется обычное предупреждение безопасности о некорректных сертификатах.
Возможно ли сделать то, что я хочу, в Google Cloud?
Ответ или решение
Для решения задачи по редиректу всех неподходящих субдоменов на конкретный URL, в данном случае на страницу вашего маркетинга, вы можете использовать механизмы Google App Engine и Google Cloud Load Balancer. Вот подробный и структурированный подход к этой задаче:
Шаг 1: Настройка записей DNS
- A записи: Убедитесь, что у вас есть A запись для субдомена
portal.example.com
, которая указывает на IP-адрес вашего Google Cloud Load Balancer. - CNAME запись для wildcard: Создайте CNAME запись для
*.example.com
, указывающую на ваш Load Balancer. Это позволит перенаправлять все другие субдомены (например,other.example.com
) к вашему Load Balancer.
Шаг 2: Настройка Load Balancer
Вам необходимо настроить правила соответствия для вашего Google Cloud Load Balancer:
-
Правило для
portal.example.com
: Убедитесь, что существует правило, которое обрабатывает запросы дляportal.example.com
непосредственно. Вам необходимо направить их на необходимый бэкенд, где расположен ваш сайт. -
Правило для всех остальных запросов:
- Используйте условие
HTTP(S)
, чтобы указать, что все остальные запросы, не попадающие под вышеупомянутое правило, должны быть перенаправлены. - Установите редирект с кодом 301 или 302 на желаемый маркетинговый URL (например,
http://mycompany.com/product.html
).
- Используйте условие
Пример конфигурации выглядит следующим образом:
- Правила маршрутизации:
- Если запрос к
portal.example.com
→ перенаправить на ваш бэкенд. - Если запрос к
*.example.com
, за исключениемportal.example.com
→ перенаправить наhttp://mycompany.com/product.html
.
- Если запрос к
Шаг 3: SSL сертификаты
Для решения вопроса с сертификатами SSL:
-
Google Managed SSL Certificates: Создайте отдельный SSL сертификат для каждого необходимого субдомена, включая
portal.example.com
и любые основные домены (example.com
,www.example.com
). Это поможет избежать предупреждений о неверных сертификатах при доступе к вашим ресурсам через HTTPS. -
Сертификат для wildcard: На данный момент Google Cloud не поддерживает создание wildcard SSL сертификатов для Load Balancer, поэтому альтернативным вариантом может быть использование отдельного сертификата для каждого поддомена, как упоминалось ранее.
Шаг 4: Тестирование
После настройки всех компонентов выполните тестирование:
- Проверьте, что доступ к
portal.example.com
корректно открывает ваш сайт. - Убедитесь, что все другие субдомены (например,
test.example.com
,other.example.com
) перенаправляют на вашу маркетинговую страницу без ошибок SSL.
Заключение
С помощью этих шагов вы сможете обеспечить правильное перенаправление всех неподходящих субдоменов на конкретный URL, сохранив при этом безопасность и качество пользовательского опыта. Убедитесь, что вы следите за обновлениями от Google Cloud, так как их функционал часто расширяется, и новые возможности могут упростить процесс в будущем.