#amazon-web-services #amazon-cloudfront #amazon-elb
Вопрос:
Попадешь в довольно странные неприятности. У вас есть дистрибутив Cloudfront с двумя источниками: S3 и ELB.
Я установил поведение по умолчанию () и Пользовательский (/тестовый запрос).
На стороне ELB есть правило для пересылки запроса с моего домена на определенный сервер. Домен также добавлен в качестве псевдонима для распространения cloudfront.
Но в любое время, когда я пытаюсь дотянуться https://my.domain/test-request У меня… ничего нет. Похоже, что все запросы идут на содержимое S3 и никогда не доходят до бэкэнда, который мне нужен.
Я уже играл с вариантами поведения, прочитал много учебных пособий, но все равно не повезло.
Я не ищу четких ответов, но, по крайней мере, мне нужно направление моих исследований.
Ответ №1:
Я предполагаю, что ваша конфигурация распространения Cloudfront
- /тест-запрос на ваш ELB в качестве первого приоритета
- По умолчанию (*) для вашего S3 в качестве универсального
- мой.домен правильно сопоставлен с CNAME вашего Cloudfront
Когда вы попытаетесь получить доступ к my.domain/тестовому запросу, Cloudfront будет соответствовать вашему поведению кэша и перенаправит его на ваш ELB вместе с путем /тестовым запросом.
Пожалуйста, обратите внимание, что он НЕ удаляет путь /test-запроса из вашего исходного запроса.
Затем ваш ELB пересылает исходный запрос на сервер приложений, используя путь /тестовый запрос.
Таким образом, вполне вероятно, что ваше приложение не предоставляет никаких ресурсов или API в соответствии с запросом пути /теста, и в результате запрос завершается неудачно.
Кроме того, поскольку вы находитесь в этой теме, пожалуйста, обратите внимание, что по умолчанию Cloudfront не пересылает параметры запроса или файлы cookie браузера в ваш пользовательский источник, который в вашем случае является ELB. Если вы хотите захватить их, вам необходимо правильно настроить поведение кэша.
ReFS: