CloudFront Whole Site Delivery и URL-адреса, содержащиеся в html

Это простой вопрос, который, возможно, применим ко всем CDN, но я не смог найти ответ на него в Интернете или на сайте AWS (http://aws.amazon.com/cloudfront/). Надеюсь, это простой ответ для всех, кто знаком с CDN или CloudFront, и это может помочь другим понять, как это работает.

Если бы я использовал CloudFront для доставки всего сайта и настроил сервер-источник (например, источник — www.myexample.com), то если бы у меня был html-файл (example1.html), обслуживаемый по адресу www.myexample.com/example1.html и example1.html должны были содержать элемент, включающий тег img с src http://www.anothersite.com/anotherExample.jpg или даже источник ведра S3, то этот jpg из другого источника тоже кэшируется в cdn?


person Skill M2    schedule 24.08.2014    source источник


Ответы (1)


Вы должны подключить корзину S3 к дистрибутиву CloudFront и использовать эти ссылки в самом HTML-коде. Я могу ошибаться, но я не понимаю, как CDN может кэшировать эти ссылки, поскольку клиентский браузер сам запрашивает эти ресурсы на основе загруженного html-кода из CDN.

Следовательно, в вашем примере только запросы для myexample.com будут проходить через вашу базу раздачи CloudFront без каких-либо дополнительных настроек источника.

Изменить: см. комментарий @Skill M2 относительно добавления нескольких источников для одной и той же раздачи CloudFront.

person andreimarinescu    schedule 24.08.2014
comment
Это то, что я мог бы предположить, но я читал в нескольких местах, что в этом нет необходимости, например здесь: fideloper.com/cloudfront-full-site-delivery (цитата ниже) и здесь blogs.gartner.com/lydia_leong/2012/05/14/. Эти места на самом деле не объясняют, как это работает, поэтому я надеялся выяснить, правда это или нет. Хотя настройка кэширования всего сайта кажется проще (вам не нужно менять URL-адрес ресурсов в HTML-коде на URL-адрес CDN!), необходимо учесть несколько очень важных соображений. - person Skill M2; 25.08.2014
comment
Из этой цитаты я понимаю, что все внутренние активы кэшируются в CDN, а не активы из внешних источников. - person andreimarinescu; 25.08.2014
comment
Итак, этот ответ в целом правильный, единственное, что нужно добавить, это то, что вам не нужен другой облачный дистрибутив, можно использовать тот же дистрибутив, но настроить более одного исходного сервера (один для веб-сервера, один для s3 ведро), а затем настроить «поведение» по шаблону пути, чтобы определить, какой исходный сервер использовать для каждого запроса к cdn). См. docs.aws.amazon.com /AmazonCloudFront/latest/Руководство разработчика/ - person Skill M2; 01.09.2014