Рейтинг:0

Перенаправить корень домена в CloudFront с помощью nginx?

флаг jp

Примечание. Я вижу несколько других вопросов о перенаправлении. к корень их статических веб-сайтов S3, но я ничего не видел о перенаправлении от корень доменного имени к сайт CloudFront/S3.

У меня есть мой личный веб-сайт, развернутый в AWS CloudFront и статически размещенный на S3. У меня есть www. Запись CNAME указывает на имя хоста CloudFront, и это работает правильно, но я обнаружил, что у вас не может быть записи CNAME для корня домена. У меня уже есть VPS с nginx, на котором размещено несколько других моих проектов. Можно ли просто добавить запись A из корня домена в мой IP-адрес VPS и настроить перенаправление запросов nginx для корня домена на имя хоста CloudFront?

Редактировать: чтобы уточнить - я хотел бы, чтобы весь трафик, направляющийся на example.com, перенаправлялся на имя хоста CloudFront, назначенное моему веб-сайту. Я могу сделать это с www.example.com создав запись CNAME для «www.» указывая на желаемое имя хоста. Однако похоже, что Google Domains не позволяет создавать записи CNAME для корня (т. е. только для example.com), и поэтому мне интересно, как перенаправить трафик с example.com на мое имя хоста CloudFront (в отличие от того, что я могу сделать прямо сейчас, что только вперед www.example.com на облачный фронт).

И, если это уместно, я не могу выполнить какое-либо перенаправление с подстановочными знаками, потому что я использую другие имена хостов в домене для разных проектов, требующих определенных записей A.

И будет ли это приемлемой/хорошей конфигурацией nginx для сайта? Я думаю, это сработает, потому что www.example.com уже правильно перенаправляет на имя хоста CloudFront.

сервер {
        слушать 443 ssl;
        имя_сервера пример.com;
        переписать ^/$ https://www.example.com на постоянный;
        ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}
Tim avatar
флаг gp
Tim
Я в замешательстве. Можете ли вы отредактировать свой вопрос, чтобы лучше описать вашу проблему, а не просто предложить конечное состояние?
the_midnight_developer avatar
флаг jp
@ Тим, я думаю, теперь стало немного понятнее
Tim avatar
флаг gp
Tim
Не совсем. Вы смешиваете свои предположения, текущее состояние и целевое состояние, проблему и предлагаемую реализацию. Например, вы упоминаете сервер и домены, но это разные домены, поддомены или просто каталоги вне этого домена? Вы также говорите «прямой трафик», но это реализация, это может быть просто разрешение домена. Я предлагаю вам удалить этот вопрос и начать заново, написав его, чтобы облегчить другим. Предложите два раздела «текущее состояние» и «целевое состояние» и убедитесь, что вы описываете то, чего пытаетесь достичь, без каких-либо предположений о реализации.
Рейтинг:0
флаг cn

Если вы переносите свой домен на сервис AWS Route53, это очень просто. Вы просто используете мастер для создания Псевдоним запись, которая является особенностью route53. С псевдонимом вы можете указать вершину зоны (ваш пример.com) в дистрибутив Cloudfront, а затем просто создайте вторую запись, которая для www это также псевдоним дистрибутива CF.

Миграция между регистраторами также довольно проста — я сделал это сам с 123-reg на AWS в прошлом году, и это было практически безболезненно.

Рейтинг:0
флаг cn

Под корнем домена я предполагаю, что вы имеете в виду example.com, а не www.example.com, и что вы хотите указать это для своего облачного веб-приложения AWS. Одна вещь, которую вы можете сделать, это создать запись A с именем @, которая, по сути, говорит: «Это я. Любые DNS-запросы ко мне (example.com) должны направляться на этот IP-адрес». Затем добавьте CNAME www, который указывает на @. Вы можете использовать Nginx, если хотите, Nginx, используемый для сквозной передачи, является просто обратным прокси-сервером. Он будет действовать как посредник любых запросов между клиентом и сервером. Nginx просто повторяет эти сообщения между клиентом и сервером.

Я надеюсь, что это помогло, я чувствую, что неправильно прочитал вопрос

the_midnight_developer avatar
флаг jp
Хорошо, я немного запутался, с этой настройкой, какова цель записи CNAME, указывающей на @? Могу ли я просто создать запись A, которая указывает на мой сервер nginx, и выполнить переадресацию, как вы сказали?
флаг cn
Ага. Это было бы прекрасно. Просто сделайте его pass_thru на сервер, на который вы хотите, и установите свою запись A на сервер nginx.

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

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