Назад | Перейти на главную страницу

Замена стандартных страниц ошибок AWS ALB пользовательскими страницами с помощью CloudFront

У меня есть ALB, содержащий правила, которые перенаправляют запросы на мои частные EC2, размещенные на AWS, и когда я делаю новое развертывание, у меня есть сценарий в Lambda, который отключает мои ASG и снова включает их. В течение этого периода, когда ASG не работают, и я пытаюсь получить доступ к веб-сайту, ALB отвечает ошибкой по умолчанию 503, и я хотел переопределить это с помощью моей настраиваемой страницы ошибок, которую я поместил в отдельную корзину S3.

Я выполнил инструкции, опубликованные в разделе ответов здесь: AWS ELB Страница "извините, сайт не работает"

Итак, вот что я сделал:

  1. Создал раздачу CloudFront с исходным URL-адресом ALB и поведением по умолчанию (*) для этого ALB с CNAME: * .mywebsite.com
  2. Создал корзину S3, загрузил мою страницу с ошибкой html в /error/index.html и сделал ее статическим размещенным сайтом.
  3. В существующий CF добавлен новый источник с исходным URL-адресом статического размещенного веб-сайта S3.
  4. Добавлено новое поведение /error/index.html Path Pattern и S3 Origin.
  5. Добавлено новое правило страницы ошибок с кодом ошибки HTTP 503, путем ответа страницы /error/index.html и кодом ответа HTTP 403 (я знаю, что 403 неверен для этого случая, но я просто хотел проверить, изменит ли он код ответа по крайней мере , но этого не произошло).

Однако, когда я пытаюсь получить доступ к своему веб-сайту, когда EC2 не работают, я все равно получаю ту же страницу ошибки 503 по умолчанию. (Я думаю, это от ALB, верно?)

Что касается шагов 2) и 3), я также пробовал использовать S3 Origin вместо Custom Origin, но это все равно не сработало.

Между прочим, когда я обращаюсь к URL-адресу xxx.cloudfront.net распределения, я получаю свою настраиваемую страницу с ошибкой с ответом 200 OK (это правильно?).

Что я делаю не так?