Вопрос по amazon-route53, forwarding, dns – Настройка переадресации URL на основе DNS в Amazon Route53 [закрыто]

125

Я пытаюсь настроить переадресацию в Amazon Route53. Моя последняя служба DNS (Nettica) позволяла мне перенаправлять запросы на & quot; aws.example.com & quot; на & quot; https: //myaccount.signin.aws.amazon.com/console/" ;.

Поддерживается ли эта функциональность Route53?

Как Nettica достигает этого? Вставляет ли он специальные записи A, CNAME, PTR или TXT?

Создание дистрибутива Cloudfront с URL-адресом в качестве источника также работает. Просто укажите домен для распространения Cloudfront с Route53 и убедитесь, что правильно настроили сертификаты TLS. Deiwin

Ваш Ответ

5   ответов
121

дея, предложенная @Vivek M. Chawla, с более простой реализацией.

AWS S3:

Create a Bucket named with your full domain, like aws.example.com On the bucket properties, select Redirect all requests to another host name and enter your URL: https://myaccount.signin.aws.amazon.com/console/

AWS Route53:

Create a record set type A. Change Alias to Yes. Click on Alias Target field and select the S3 bucket you created in the previous step.

Ссылка:Как перенаправить домены с помощью Amazon Web Services

Официальная документация AWS:Есть ли способ перенаправить домен в другой домен с помощью Amazon Route 53?

Это должен быть главный ответ.
Спасибо @MarioOlivioFlores. Я добавил ссылку на официальные документы в своем ответе.
Это прекрасно работает для HTTP, но не HTTPS.
@mythofechelon Что ты имеешь в виду? До сих пор у меня не было проблем с https. Если вы хотите использовать https для своего домена (например, https: // aws.example.com), это совершенно другая проблема, поскольку для этого вам потребуется сервер с ssl-сертификатом.
Официальная документация здесь:aws.amazon.com/premiumsupport/knowledge-center/…
11

раницу входа в aws.

Перейдите в папку nginx conf (в моем случае это/etc/nginx/sites-available в котором я создаю символическую ссылку на/etc/nginx/sites-enabled для включенных конф файлов).

Затем добавьте путь перенаправления

server {
  listen 80;
  server_name aws.example.com;
  return 301 https://myaccount.signin.aws.amazon.com/console;
}

Если вы используете nginx, у вас, скорее всего, будут дополнительные серверные блоки (виртуальные хосты в терминологии apache) для обработки апекса вашей зоны (example.com) или любой другой настройки. Убедитесь, что один из них установлен в качестве сервера по умолчанию.

server {
  listen 80 default_server;
  server_name example.com;
  # rest of config ...
}

На маршруте 53 добавьтеA record заaws.example.com и установите значение на тот же IP-адрес, который используется для вашей вершины зоны.

Еще лучше было бы использовать запись Alias, чтобы указать на упругий балансировщик нагрузки перед этой машиной.
0

создающим пустое ведро, тоRedirect all requests to another host name под статическим хостингом в свойствах через консоль. Убедитесь, что вы установили 2 A записи в route53, одна дляfinal-destination.com и один дляredirect-to.final-destination.com, Настройки для каждого из них будут идентичны, но имя будет отличаться, поэтому оно совпадает с именами, которые вы задали для своих групп / URL-адресов.

9
Update

приведенный ниже, все еще действителен и может помочь понять причину, по которой переадресация URL-адресов на основе DNS недоступна черезAmazon Route 53 Я настоятельно рекомендую проверить Vivek M. Chawla'sсовершенно умное косвенное решение через тем временем введенAmazon S3 Поддержка перенаправления веб-сайтов и, таким образом, получить автономное серверное решение и, следовательно, бесплатное решение в AWS.

Implementing an automated solution to generate such redirects is left as an exercise for the reader, but please pay tribute to Vivek's epic answer by publishing your solution ;) Original Answer

Для этого Nettica должна использовать специальное решение для перенаправления, вот проблема:

Вы можете создать псевдоним CNAME, напримерaws.example.com заmyaccount.signin.aws.amazon.comоднако DNS не предоставляет официальной поддержки для создания псевдонимов подкаталогов, таких какconsole в этом примере.

It's a pity that AWS doesn't appear to simply do this by default when hitting https://myaccount.signin.aws.amazon.com/ (I just tried), because it would solve you problem right away and make a lot of sense in the first place; besides, it should be pretty easy to configure on their end.

По этой причине некоторые поставщики DNS, по-видимому, внедрили собственное решение, позволяющее перенаправлять в подкаталоги; Рискну предположить, что они в основном упрощают создание псевдонима CNAME для собственного домена и снова перенаправляют оттуда к конечному пункту назначения через непосредственныйHTTP 3xx Redirection.

Таким образом, чтобы достичь того же результата, вам нужно иметь службу HTTP, выполняющую эти перенаправления, что не является простым решением, на которое, конечно, можно надеяться. Возможно / Надеюсь, кто-то еще может придумать более разумный подход.

Вы на месте. Это именно то, что происходило. Saurav
@ejain - вы правы, конечно, я исправил это соответствующим образом (должно быть, тогда пропустил уведомление); спасибо за указание на эту потенциально вводящую в заблуждение фразу!
CNAME являются псевдонимами и не перенаправляют.
301

которую описал Саурав, но мне действительно нужно было найти решение, которое не требовало бы ничего, кроме Маршрута 53 и S3. Я создал руководство для моего блога с подробным описанием того, что я сделал.

Вот что я придумал.

Objective

Используя только инструменты, доступные в Amazon S3 и Amazon Route 53, создайте перенаправление URL, которое автоматически пересылаетhttp://url-redirect-example.vivekmchawla.com на страницу входа в Консоль AWS с псевдонимом «MyAccount», расположенную по адресуhttps://myaccount.signin.aws.amazon.com/console/ .

Это руководство научит вас настраивать переадресацию URL на любой URL, а не только на Amazon. Вы узнаете, как настроить пересылку в определенные папки (например, "/ console" в моем примере) и как изменить протокол перенаправления с HTTP на HTTPS (или наоборот).

Step One: Create Your S3 Bucket

Open the S3 Management Console and click "Create Bucket"

Откройте консоль управления S3 и нажмите «Создать корзину».

Step Two: Name Your S3 Bucket

Name your S3 Bucket

Choose a Bucket Name. This step is really important! You must name the bucket EXACTLY the same as the URL you want to set up for forwarding. For this guide, I'll use the name "url-redirect-example.vivekmchawla.com".

Select whatever region works best for you. If you don't know, keep the default.

Don't worry about setting up logging. Just click the "Create" button when you're ready.

Step 3: Enable Static Website Hosting and Specify Routing Rules

Enable Static Website Hosting and Specify Routing Rules

In the properties window, open the settings for "Static Website Hosting". Select the option to "Enable website hosting". Enter a value for the "Index Document". This object (document) will never be served by S3, and you never have to upload it. Just use any name you want. Open the settings for "Edit Redirection Rules".

Paste the following XML snippet in it's entirety.

<RoutingRules>
  <RoutingRule>
    <Redirect>
      <Protocol>https</Protocol>
      <HostName>myaccount.signin.aws.amazon.com</HostName>
      <ReplaceKeyPrefixWith>console/</ReplaceKeyPrefixWith>
      <HttpRedirectCode>301</HttpRedirectCode>
    </Redirect>
  </RoutingRule>
</RoutingRules>

Если вам интересно, что делает вышеуказанный XML, посетитеДокументация AWM для & quot; Синтаксиса для указания правил маршрутизации & quot;, Бонусная техника (здесь не рассматривается) - это перенаправление на определенные страницы, например, на хосте назначения.http://redirect-destination.com/console/special-page.html, Читайте о<ReplaceKeyWith> элемент, если вам нужна эта функциональность.

Step 4: Make Note of Your Redirect Bucket's "Endpoint"

Make a note of your Redirect Bucket's Endpoint

Запишите статический хостинг веб-сайтов & quot; конечная точка & quot; что Amazon автоматически создал для этого ведра. Это понадобится вам позже, поэтому выделите весь URL, а затем скопируйте и вставьте его в блокнот.

CAUTION! На данный момент вы можете нажать эту ссылку, чтобы проверить, правильно ли были введены ваши правила перенаправления, но будьте осторожны! Вот почему ...

Допустим, вы ввели неверное значение внутри<Hostname> теги в ваших правилах перенаправления. Может быть, вы случайно набралиmyaccount.amazon.com, вместоmyaccount.signin.aws.amazon.com, Если вы нажмете ссылку для проверки URL-адреса конечной точки, AWS с радостью перенаправит ваш браузер на неправильный адрес!

Заметив свою ошибку, вы, вероятно, отредактируете<Hostname> в ваших Правилах перенаправления, чтобы исправить ошибку. К сожалению, когда вы попытаетесь снова щелкнуть ссылку, вы, скорее всего, будете перенаправлены обратно на неправильный адрес! Даже если вы исправили<Hostname> Ваш браузер кэширует предыдущую (неправильную!) запись. Это происходит потому, что мы используем перенаправление HTTP 301 (постоянное), которое браузеры, такие как Chrome и Firefox, будут кэшировать по умолчанию.

Если вы скопируете и вставите URL-адрес конечной точки в другой браузер (или очистите кэш в своем текущем браузере), у вас будет еще один шанс проверить, обновлен ли ваш<Hostname> запись, наконец, правильная.

На всякий случай, если вы хотите проверить URL-адрес конечной точки и правила перенаправления, вам следует открыть сеанс частного просмотра, например & quot; Режим инкогнито & quot; в хроме. Скопируйте, вставьте и протестируйте URL-адрес конечной точки в режиме инкогнито, и все, что кэшируется, исчезнет после закрытия сеанса.

Step 5: Open the Route53 Management Console and Go To the Record Sets for Your Hosted Zone (Domain Name)

Open the Route 53 Management Console to Add Record Sets to your Hosted Zone

Select the Hosted Zone (domain name) that you used when you created your bucket. Since I named my bucket "url-redirect-example.vivekmchawla.com", I'm going to select the vivekmchawla.com Hosted Zone. Click on the "Go to Record Sets" button. Step 6: Click the "Create Record Set" Button

Click the Create Record Set button

Нажмите & quot; Создать набор записей & quot; откроется окно «Создать набор записей» с правой стороны консоли управления Route53.

Step 7: Create a CNAME Record Set

Create a CNAME Record Set

In the Name field, enter the hostname portion of the URL that you used when naming your S3 bucket. The "hostname portion" of the URL is everything to the LEFT of your Hosted Zone's name. I named my S3 bucket "url-redirect-example.vivekmchawla.com", and my Hosted Zone is "vivekmchawla.com", so the hostname portion I need to enter is "url-redirect-example".

Select "CNAME - Canonical name" for the Type of this Record Set.

For the Value, paste in the Endpoint URL of the S3 bucket we created back in Step 3.

Click the "Create Record Set" button. Assuming there are no errors, you'll now be able to see a new CNAME record in your Hosted Zone's list of Record Sets.

Step 8: Test Your New URL Redirect

Откройте новую вкладку браузера и введите URL, который мы только что настроили. Для меня этоhttp://url-redirect-example.vivekmchawla.com, Если все работает правильно, вас следует отправить прямо на страницу входа в AWS.

Потому что мы использовалиmyaccount.signin.aws.amazon.com Псевдоним, являющийся целевым URL нашего перенаправления, Amazon точно знает, к какому аккаунту мы пытаемся получить доступ, и доставляет нас прямо туда. Это может быть очень удобно, если вы хотите дать сотрудникам или подрядчикам короткую, чистую фирменную ссылку для входа в AWS.

All done! Your URL forwarding should take you to the AWS sign-in page.

Conclusions

Мне лично нравятся различные сервисы AWS, но если вы решили перенести управление DNS на Amazon Route 53, отсутствие простой переадресации URL может разочаровать. Я надеюсь, что это руководство помогло немного упростить настройку переадресации URL для ваших размещенных зон.

Если вы хотите узнать больше, просмотрите следующие страницы сайта документации AWS.

Example: Setting Up a Static Website Using a Custom Domain Configure a Bucket for Website Hosting Creating a Domain that Uses Route 53 Creating, Changing, and Deleting Resource Records

Ура!

Примечание :: Для тех, кто хочет перенаправления корневого домена: example.org - & gt; example.com - сделать все то же самое, за исключением использования записи A с псевдонимом: Да & quot; включен. Затем выберите ведро в качестве цели.
+1 за это очень умное решение - большое спасибо за то, что нашли время для составления такого эпического пошагового руководства, я обновилmy answer соответственно направить будущих читателей к своим!
Появилась новая опция & quot; Перенаправлять все запросы на другое имя хоста & quot; под настройками буфера. Я вставил туда знак IAM в URL, и он работал как шарм, нет необходимости в XML.
Отличное решение. Но я столкнулся с проблемой использования https для исходного URL. Если перенаправление, которое я перенаправляю, - dev.example.com, перенаправление отлично работает для http: // dev.example.com, но не удается для https: // dev.example.com. Я не нашел решения этой проблемы.
@ Грег Я думаю, это может быть связано с тем, как Amazon обрабатывает HTTPS для S3. К сожалению, при использовании CNAME для доступа к корзине S3 вы не можете принудительно установить SSL, добавив "https". потому что Amazon не предоставляет сертификат для & quot; *. example.com & quot ;. Поскольку S3 не разрешит соединение, мы никогда не доберемся до логики перенаправления. К сожалению, я не вижу обходного пути к этому.

Похожие вопросы