Мне поручили настроить наше веб-приложение в CloudFront. Наше веб-приложение размещено на сервере Ubuntu, который полностью находится за пределами AWS.
У меня практически нет опыта работы с CDN, но я добился приличного прогресса в этом. К сожалению, документы бесполезны, потому что в большинстве из них предполагается, что вы используете S3, особенно статический сайт или что-то в этом роде.
Итак, вот что уникального в нашей установке:
- Изначально мы использовали Cloudflare (не CloudFront), и наш DNS по-прежнему размещается у них.
- Я обновил записи DNS Cloudflare с помощью записей NS, которые указывают на Route 53. Так что теперь Route 53 обрабатывает DNS для поддомена, с которым я работаю, и вместо этого указывает нам на домен распространения CloudFront.
- Я создал дистрибутив для поддомена (скажем,
app.example.com
) и запросил общедоступный сертификат SSL/TLS, который я полагать Теперь я установил и настроил правильно. (Причина, по которой я говорю это, заключается в том, что я изначально получал ошибки конфиденциальности в Chrome при посещении app.example.com
, но эта ошибка исчезла после того, как я разобрался с частью сертификата SSL/TLS.)
Теперь, что происходит, когда я посещаю app.example.com
Я получаю ошибку 403, которая гласит:
Просьба не может быть удовлетворена.
Плохой запрос. В настоящее время мы не можем подключиться к серверу для этого приложения или веб-сайта. Возможно, слишком много трафика или ошибка конфигурации. Повторите попытку позже или обратитесь к владельцу приложения или веб-сайта.
Если вы предоставляете контент клиентам через CloudFront, вы можете найти шаги по устранению неполадок и помочь предотвратить эту ошибку, просмотрев документацию CloudFront.
У CloudFront возникают проблемы при обмене данными с исходным сервером.
Я не уверен, что проблема, возможно, связана со вторичным сертификатом SSL/TLS (т. е. мне нужно установить еще один сертификат в поле Ubuntu? Он уже использует letsencrypt. Должен ли это быть общедоступный сертификат, который я запросил у AWS, или новый?).
Или возможно, что настройка DNS каким-то образом не позволяет CloudFront узнать, как даже найти исходный сервер? (В конце концов, DNS для app.example.com
указывает нам на CloudFront, так откуда CloudFront должен знать, как найти исходный сервер?) Поскольку я никогда раньше не работал с CDN, я немного запутался.
До сих пор каждое руководство по устранению неполадок предполагает, что ошибка 403 возникает из-за неправильной политики корзины S3 или чего-то подобного, но опять же, я не использую S3 для обслуживания веб-приложения.