Я развертываю распространение CloudFront для широко распределенной сети. Я использую свой собственный сервер в качестве источника, и я настроил срок действия кеша на настраиваемое значение (например, 24 часа). Все работает гладко для границ, используемых странами, которые генерируют высокий трафик, и для ресурсов, которые запрашиваются чаще, но я думаю, что это не так для (большой) части запросов, которые исходят из стран с низким трафиком.
Поскольку в сети несколько десятков тысяч ресурсов, и, учитывая органический (длинный хвост) характер трафика, к большинству из них обращаются всего 3-4 раза в день на каждое ребро. В этом случае, если я правильно понимаю, первый запрос имеет плохую производительность (он извлекается из источника), в то время как остальные 2-3 получают выгоду от облачного фронта. В этом сценарии примерно 30% трафика не использует кэширование CDN.
Есть ли способ заставить края автономно обновлять набор объектов независимо от пользователей, запрашивающих их, чтобы они оставались «готовыми»? Я знаю, что это повлияет на ежемесячный счет, но на данный момент я сосредотачиваюсь на производительности, поэтому давайте предположим, что затраты здесь не важны.
Если я правильно прочитал, нужно предварительно прогреть кеш. Официального способа предварительного прогрева кеша нет.
Однако вы можете использовать список из http://blog.domenech.org/2013/10/amazon-web-services-cloudfront-edgelocation-codes.html предварительно прогреть.
Для d709c28ax59vf.cloudfront.net
, это будет:
Вы можете написать сценарий для предварительного прогрева этого домена с помощью Host: d709c28ax59vf.cloudfront.net
заголовок.