У меня есть несколько сайтов — около 20. Все они php-приложения, в настоящее время размещены на одной машине в apache. Теперь с конфигурациями виртуальных хостов я могу разместить их все с одним ELB (если они не должны быть по HTTPS). Я могу легко направить входящий запрос на сервер из соответствующего каталога.
Однако когда я ставлю создание CloudFront Distribution с Origin в качестве ELB, все мои сайты начинают получать страницу по умолчанию. Как я могу настроить Apache для CDN и ELB осведомлен.
Я думал, что смогу использовать некоторые заголовки, но не похоже, что это что-то серверное. Ниже приведены заголовки, которые я получаю по запросу за CloufFront. CDN-> ELB-> MY_APPLICATION
"host": "MY_PUBLIC_FACING_ELB_DNS_NAME",
"cache-control": "cf-no-range-cache",
"user-agent": "Amazon CloudFront",
"via": "1.1 d6e48c0d02a2d98c0ccacee7577ee8c2.cloudfront.net (CloudFront)",
"x-amz-cf-id": "rB-gbTCqWq2IeZ-B25-d36rp9j3FmFuicsdPOltDBuYk0HPgLyLj_g==",
"x-forwarded-for": "54.169.155.12, 54.240.148.53",
"x-forwarded-port": "80",
"x-forwarded-proto": "http",
"connection": "keep-alive"
Когда не настроен с ELB я получаю следующее.
"host": "www.example.com",
"accept": "*/*",
"user-agent": "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.91 Safari/537.36",
"accept-encoding": "gzip, deflate, sdch",
"accept-language": "en-US,en;q=0.8",
"cookie": "_sm_au=aaaaaaaaaaaaaaaaaaaa",
"via": "MY_SQUID_SERVER_NAME_VERSION",
"z-forwarded-for": "AAAAAAAAAAAA",
"cache-control": "max-age=259200",
"xroxy-connection": "keep-alive",
"connection": "Keep-Alive",
"x-forwarded-for": "MY_PROXY_SERVER'S_IP"
При размещении за CloudFront я не получаю никакой информации о хосте, передаваемой Amazon ELB. Как мне обойти это?
Спасибо
Исходя из вашего описания проблемы и опубликованных вами заголовков, я думаю, вам нужно настроить дистрибутив CloudFront для передачи заголовка хоста в источник. Посмотрите здесь: http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/header-caching.html#header-caching-web
Вам не нужно настраивать Apache на «ELB / CF-осведомленность»
Добавили ли вы записи альтернативных доменных имен (CNAME) в конфигурацию Cloudfront Distribution?
** Обновить **
Попробуйте переслать заголовок вашего хоста к источнику. Вы можете сделать это, отредактировав поведение (я), установив «Пересылать заголовки» в «Белый список» и добавив «Хост» в качестве настраиваемого заголовка, а затем разрешив изменениям распространяться.