Как отправить заголовки истечения срока действия кэша Akamai?

У меня есть сайт, на котором каждый раз, когда вы загружаете изображение, оно отображается в различных размерах. Задание cron запускается каждые 10 минут, чтобы определить, были ли загружены какие-либо новые изображения за это время, и если это так, генерируются все необходимые кадры.

Поскольку этот хрон запускается каждые 10 минут, существует некоторое время между тем, как контент (например, статья) выходит в эфир, и временем, когда изображения становятся доступными. Таким образом, в течение этого времени отображается общее изображение заполнителя с логотипом сайта.

Поскольку Akamai кэширует изображение, когда пользователь сайта загружает страницу с изображением, которое еще не было обработано cron, тогда для этого пути к изображению будет показан статический заполнитель, и Akamai будет его кэшировать. Даже когда изображение позднее будет отображено и доступно, пользователи все равно получат кэшированную версию от Akamai.

Одно из решений состоит в том, чтобы разрушить "возраст" этих изображений, когда cron их отобразил. Но Akamai требуется около 8 минут, чтобы вернуться к новым.

Есть ли какое-либо другое решение, где я могу сказать Akamai, возможно, через заголовки истечения срока действия кэша, чтобы он возвращался каждые 10 секунд, пока не будет получено новое изображение, и после того, как это будет сделано, не возвращайтесь снова и продолжайте показывать кэшированную версию?

1 ответ

Решение

Да, в некотором смысле. Если вы объедините несколько шагов со стороны сервера и в настройках akamai.

Вот концепция: пограничный сервер доставляет контент, который у него есть. Если вы используете заголовки управления кэшем, например, из php, настройки TTL в настройках конфигурации akamai соответствующего цифрового свойства сдувают их, и они используют их вместо этого. Это означает, что вы сообщаете ему, как часто вы заходите на исходный сервер по пути, типу файла, расширению или как угодно. Затем со стороны клиента все файлы, которые он имеет, доставляют конечному пользователю, и на самом деле не имеет значения, как часто пограничные серверы запрашивают контент, если только вы не кэшируете на этом уровне, не откатывая его обратно к вам.

Используя эти параметры конфигурации, вы можете указать, что конкретный файл имеет точный срок действия - или вообще не кэшировать его.

Так что если на стороне сервера вы укажете placeholder.jpg на своей странице и скажете akamai вообще не кэшировать это изображение, то оно будет возвращаться каждый раз, когда Edge Server получает запрос на него. Как только вы разместите изображение на своем месте, placeholder.jpg больше не будет существовать на вашей странице, и вместо этого появится sizeA.jpg, который будет соответствовать обычному времени кэширования изображений.

Это может быть не совсем идеально, но это лучше, чем вы можете сделать, кроме ручной очистки страницы, и, насколько я знаю, у них нет вызова API для очистки страницы, которую вы можете запустить (плюс это занимает 7-10 минут для очистки кеша в любом случае через их н / ж).

Другие вопросы по тегам