Почему местоположение перенаправления веб-сайта S3 не сопровождается CloudFront?

Почему всем Вашим серверам нужен общедоступный адрес?

Установите сервер в серверной и дайте ему общедоступный IP-адрес.

Приблизительно из 14 серверов, которые я выполняю регулярно, только 2 имеют публично доступные интерфейсы.

Отредактированный для добавления: В других сетях, что я принял участие в управлении, у нас была способность повернуться от/на сервисов по желанию, тогда как у нас не было доступа для управления брандмауэром. Я не могу даже начать говорить Вам, на сколько раз непреднамеренно конечно, ненужный сервис (SMTP) был включен и уехал, и единственная вещь, сохраняющая нас от становления дампом спама и попадения в черный список в процессе, был брандмауэр.

Кроме того, весь трафик, который передает между серверами, полностью зашифрованными?

Можно ли, конечно, водить автомобиль 100 миль в час без ремней безопасности, никаких подушек безопасности и лысых шин, но почему был бы Вы??

18
задан 21 November 2012 в 18:52
3 ответа

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

Я создал дистрибутив Cloudfront с настраиваемым источником, указывающим на имя хоста статического веб-сайта S3 вместо имени хоста корзины . В случае OP желаемый источник будет.

mysite.s3-website-us-east-1.amazonaws.com

Попадание в дистрибутив Cloudfront только с использованием корзины в качестве источника не работает, потому что корзина на самом деле не обслуживает перенаправления. Он обслуживает только файлы и хранит метаданные.

Надеюсь, что это поможет.

47
ответ дан 2 December 2019 в 20:20

Анализ

Согласно документированному поведению запросов и ответов и поддерживаемым кодам состояния HTTP для настраиваемых источников , Amazon CloudFront не следует Перенаправляет , к сожалению:

[...] После настройки перенаправления в первый раз, когда конечный пользователь отправляет запрос объекта, CloudFront Front отправляет запрос в origin, и origin отвечает перенаправлением (например, 302 Временно переехал). CloudFront кэширует перенаправление и возвращает его в конечный пользователь. CloudFront не выполняет перенаправление. [выделено мной]

Конечно, вы используете Amazon S3 , а не настраиваемое происхождение, и соответствующий раздел заметно отсутствует в Поведение запросов и ответов для Amazon S3 Origins , но, учитывая, что переадресация Amazon S3 была добавлена ​​сравнительно недавно (см. Amazon S3 - Поддержка переадресации веб-сайтов ), она может просто отсутствовать там.

Соответственно, я рискну предположить, что вы это делаете. не получает пустой файл с кодом состояния HTTP 200 OK , а скорее статус HTTP 301 перемещен навсегда без тела вообще - проверяли ли вы это в браузере или в конечном итоге только с инструмент командной строки, например, cURL или HTTPie ? Для последних инструментов обычно требуется явный параметр для отслеживания перенаправлений, поэтому это может легко остаться незамеченным.

Возможное решение

Если анализ окажется правильным, вам нужно будет вместо этого настроить перенаправление для явного нацеливания на CloudFront, снова см. Перенаправления :

Вы можете настроить свой веб-сервер для перенаправления запросов на один из following locations:

  • The new URL of the object on the origin server. When the end user follows the redirect to the new URL, the end user bypasses CloudFront and goes straight to the origin. As a result, we recommend that you not redirect requests to the new URL of the object on the origin.

  • The new CloudFront URL for the object. When the end user submits the request that contains the new CloudFront URL, CloudFront gets the object from the new location on your origin, caches it at the edge location, and returns the object to the end user. Subsequent requests for the object will be served by the edge location. This avoids the latency and load associated with viewers requesting the object from the origin. However, every new request for the object will incur charges for two requests to CloudFront.

2
ответ дан 2 December 2019 в 20:20

Я понимаю, что прошло восемь лет, но на случай, если кто-нибудь найдет это , CloudFront подключается к S3 через режим веб-сайта (как указано в принятом ответе) или подключается к S3 в режиме без веб-сайта с использованием удостоверения Origin Access. Я оказался здесь в поисках решения для перенаправления, которое работало с S3 (режим веб-сайта) после того, как я переключился в режим без веб-сайта; так что включить обратно не получится.

В документации Amazon я нашел следующее: Функции перенаправления. Эту функцию можно использовать для перенаправления даже без обращения к серверу Origin.

0
ответ дан 27 June 2021 в 05:03

Теги

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