Моя установка выглядит следующим образом:
Все это идеально то, что я хочу, ОДНАКО ...
Причина в том, что EC2 видит запрос, исходящий от балансировщика нагрузки, поэтому он предполагает, что базовый URL - это elb.example.com, и соответственно генерирует все ссылки.
Как заставить EC2 видеть базовый URL как example.com?
Такое поведение, вероятно, связано с тем, что по умолчанию CloudFront устанавливает заголовок запроса Host: HTTP равным имени хоста источника, в данном случае elb.example.com. Затем приложение предположительно генерирует ссылки на основе этого имени хоста.
Если вместо этого вы настроите CloudFront для внесения этого заголовка в белый список для пересылки в источник, заголовок хоста, отправленный браузером (example.com), будет отправлен в приложение CloudFront, поэтому приложение должно вести себя так, как вы ожидаете. и используйте это значение при создании ссылок. При этом CloudFront по-прежнему использует имя хоста исходного сервера для поиска DNS, необходимого для установления TCP-соединения с источником (в данном случае ELB), но прекращает вводить это имя хоста в заголовки HTTP-запроса.
На это ответил @ michael-sqlbot на SO