Реагировать на ссылки маршрутизатора в приложении, прерванные после перехода на cloudfront + SSL
У меня есть приложение реагирования, использующее реагирующий маршрутизатор, размещенный в корзине S3, с использованием Route53 в качестве поставщика DNS. Приложение работало нормально с конфигурацией Route53, указывающей на ведро S3.
Поскольку я хочу использовать SSL, я создал дистрибутив Cloudfront, указывающий на корзину, с сертификатом SSL, и указал на него DNS. С тех пор ни одна из ссылок не работает, (example.com работает, а example.com/foo - нет). Он просто возвращает ошибку NoSuchKey. Я знаю, что это неправильно, так как ключ определенно есть, и он работал раньше.
1 ответ
Проблемы
- Как и большинство веб-серверов, CloudFront/S3 сгенерирует 404, если корзина не содержит объект, указанный в URL.
- Неизвестные / неопознанные объекты автоматически выдают 403, если они не являются общедоступными или не имеют необходимых разрешений
Решение
Вы можете сделать так, чтобы CloudFront возвращал объект в программу просмотра (например, файл HTML), когда ваш Amazon S3 или пользовательский источник возвращает код состояния HTTP 4xx или 5xx в CloudFront. Вы также можете указать, как долго ответ об ошибке от вашего источника или пользовательская страница ошибки будет кэшироваться в пограничных кешах CloudFront.
Больше ресурсов
- Как CloudFront обрабатывает и кэширует коды состояния HTTP 4xx и 5xx от вашего происхождения
- Создание пользовательской страницы ошибок для определенных кодов состояния HTTP
- Как я могу устранить ошибку HTTP 404 "NoSuchKey" от Amazon S3?
- CloudFront: пользовательские страницы ошибок и кэширование ошибок