Увеличьте рейтинг попаданий в кэш Cloudfront - PullRequest
0 голосов
/ 24 января 2020

У меня есть около 50k .jpg изображений, хранящихся в S3, и я настроил CloudFront для их доставки через CDN. Мой показатель кеша за последний месяц в среднем составляет всего около 16%. Под поведением я настроил CDN, чтобы иметь минимальный TTL 1 день (86400 секунд), максимальный TTL 1 год (31536000 секунд) и TTL по умолчанию 1 день. Начиная с S3, каждое из моих изображений отвечает следующим заголовком Cache-control:

Cache-Control: public, max-age=31536000

Вот другие заголовки ответа с сервера происхождения (S3).

Accept-Ranges: bytes
Cache-Control: public, max-age=31536000
Content-Length: 22420
Content-Type: image/jpeg
Date: Fri, 24 Jan 2020 00:50:55 GMT
ETag: "75b4b9e2693058f143df962efe7305dd"
Last-Modified: Wed, 04 Dec 2019 15:20:08 GMT
Server: AmazonS3
x-amz-id-2: rpJdSKKlDkGqxIQrY2Lu887IYuwJPeoZQ40c8CQa11ZEjfuUdLtG19m/frrOeXtDK3gByc6pOlc=
x-amz-request-id: E68021E10D5DB297

Если я подожду некоторое время (30 минут) и снова запросю это изображение, я получу ошибку в кэше. Сразу после этого я могу снова запросить изображение и получить кэш-память. Я могу получить попадание в кэш для последующих вызовов, если не оставляю объект без изменений в течение какого-либо периода времени. Я не понимаю, почему значение Min TTL, которое я установил, не хранит изображения в кеше дольше. Я понимаю, что Amazon удалит из кэша изображения, к которым не так часто обращаются, как к другим, но это приводит к тому, что частота пропуска моего кэша становится довольно высокой. Как решить эту проблему?

enter image description here

Заранее спасибо.

ОБНОВЛЕНИЕ

Ниже я разместил свои конфигурации поведения:

enter image description here

Вот мои заголовки ответов Cloudfront:

accept-ranges: bytes
age: 53
cache-control: public, max-age=31536000
content-length: 6707
content-type: image/jpeg
date: Sat, 25 Jan 2020 00:06:47 GMT
etag: "b511907ae7c3c2299d1e3022f6253f2f"
last-modified: Fri, 11 Oct 2019 05:08:40 GMT
server: AmazonS3
status: 200
via: 1.1 15e6db7015a157ee446cfd6592fca1b3.cloudfront.net (CloudFront)
x-amz-cf-id: AFAkhVgvzj9NjiEFz-222m0uJE5G8B5R2bE06K5Dnsn3Rdz2NqEkdw==
x-amz-cf-pop: ATL52-C1
x-cache: Hit from cloudfront

Подождите 5 минут и снова запросите то же изображение. Вот заголовки для этого ответа.

accept-ranges: bytes
cache-control: public, max-age=31536000
content-length: 6707
content-type: image/jpeg
date: Sat, 25 Jan 2020 00:12:01 GMT
etag: "b511907ae7c3c2299d1e3022f6253f2f"
last-modified: Fri, 11 Oct 2019 05:08:40 GMT
server: AmazonS3
status: 200
via: 1.1 e11ff5647028a0e212255f92e5436d8b.cloudfront.net (CloudFront)
x-amz-cf-id: a7ha0wB_cyWO77fmoXNtxiMLOX-3ufFU0McgpWwkoYpzFlCMB6CmCw==
x-amz-cf-pop: DFW3-C1
x-cache: Miss from cloudfront

Я замечаю, что каждый раз, когда я получаю промах, меняется заголовок x-amz-cf-pop.

...