Переадресация субдомена Dynamic Route53
Я пытаюсь перенаправить домен Route53 в другой домен Route53, сохраняя при этом поддомен.
У меня есть размещенная зона Route 53 для example.com, которая содержит мой основной веб-сайт.
У меня есть другая размещенная зона Route 53, например, example.co.uk, которую я перенаправляю на example.com, используя правила перенаправления статического веб-сайта S3 (как описано на /questions/30224866/nastrojka-pereadresatsii-url-na-osnove-dns-v-amazon-route53/30224867#30224867).
Это прекрасно работает для корневого домена, но я хотел бы сопоставить поддомены, как в следующих примерах:
sub1.example.co.uk --> sub1.example.com
sub2.example.co.uk --> sub2.example.com
...
sub999.example.co.uk --> sub999.example.com
Я знаю, что это можно сделать, создав новую корзину S3 для каждого поддомена и настроив соответствующие правила перенаправления статического веб-сайта S3, но мне было интересно, есть ли способ сделать это динамически, поэтому *.example.co.uk переходит к *.example.com. Желательно без запуска отдельного экземпляра EC2 (работает nginx)
Спасибо!
Стейн
1 ответ
Нет простого способа сделать это с любой комбинацией готовых сервисов AWS (за исключением EC2, конечно)... кроме создания уникального сегмента для каждого субдомена, который вы хотите перенаправить. Лимит в 100 блоков на учетную запись теперь является мягким, а не жестким пределом, поэтому теперь вы можете - представив разумный пример использования - запросить, чтобы поддержка AWS увеличила ваш предел сегментов.
Конечно, это не решает проблему их предоставления, хотя один подстановочный знак CNAME на маршруте 53 позволит вам затем массово направить его на S3, используя конечную точку корневого регионального веб-сайта в качестве цели, по крайней мере, как S3 работает на данный момент, что означает полагаться на некоторое недокументированное поведение S3, которое вряд ли изменится, но, тем не менее, может измениться.
Запросы на имена хостов, не совпадающие с уже созданными сегментами, будут по-прежнему отправляться на S3 и возвращать ошибку "NoSuchBucket", которая представляет собой собственную проблему... фактически, это пища для размышлений в поиске подстановочных знаков.
Два абзаца назад я упоминал, что использовал недокументированное поведение с подстановочным знаком CNAME, указывающим на S3. Воображая, что меня вызывают потенциальные комментаторы, которые прочитали документацию, но не экспериментировали с реальным поведением S3, я установил подстановочный знак CNAME в одной из моих зон Route 53, указывая *.mysterystring.example.com
в s3-website-us-west-2.amazonaws.com
, Это не то, как в документации говорится, что вы должны это делать, но, конечно же, это работает именно так, как я ожидал... что бы вы ни ставили вместо *
Если у вас есть корзина с именем полного доменного имени в us-west-2, S3 подает ее по запросу. Если нет, то это ошибка "NoSuchBucket", полная с именем корзины, которую S3 пытался найти, но не смог. Итак, почему я не упомянул фактический домен настройки теста, чтобы доказать свою точку зрения? Ну... Любой, кто обнюхивает, может создать сегмент, используя одно из неиспользуемых имен хостов, соответствующих этому подстановочному знаку, и иметь веб-сайт в моем домене, размещенный на S3 с такой настройкой, без конфигурации с моей стороны и без моего ведома. (!?) Конечно, им выставят счет за ведро, но эй, бесплатный домен на корточках! Следующее, что вы знаете, они выдают себя за меня, крадут клиентов, кто знает?
Итак, красный флаг: будьте осторожны с последствиями перенаправления с использованием подстановочных знаков для непредоставленных ресурсов.
С другой стороны, если вы хотите перенаправить все (и вы предпринимаете шаги, чтобы убедиться, что пункт назначения действительно является тупиком, который нельзя тайно требовать для неиспользуемых имен хостов), экземпляр EC2 не будет плохой сделкой. T2.micro может легко обслуживать сотни тысяч легких запросов, таких как перенаправления, в день (у меня есть один, который обычно обрабатывает более 300 тыс. В день и всегда имеет резервные кредиты ЦП) за <10 долларов США в месяц.