Как заставить Cloudfront кэшировать только каждые 5 секунд вместо 24 часов для динамического контента - PullRequest
0 голосов
/ 09 мая 2019

My desired behavior is to have cloudfront cache my origin(api endpoint that returns json).

Кажется, что независимо от того, какие значения я поместил в заголовок для max-age в моем источнике или какие значения "ttl" я положил в свой дистрибутив облачного фронта, попадание в кеш точек распространения в течение 24 часов в облачном фронте при использовании curl с PHP бэкэнд. При попадании в конечную точку через Chrome он кэшируется каждые 5 секунд, как хотелось бы (я думаю, что chrome отправляет no-cache в заголовок запроса)

У кого-нибудь есть рекомендации, как заставить Cloudfront кэшировать свежие данные каждые 5 секунд на моем сайте, особенно при использовании curl?

Я поразил точку API отдыха, которая отправляет json обратно, который должен динамически кэшироваться в облачном фронте каждые пять секунд. Кэш необходимо обновить через 5 секунд, чтобы свежие данные подавались, даже если они совпадают. Источник - это динамическое содержимое, которое меняется каждый час и не является статичным.

Нельзя ли преодолеть 24-часовой лимит кэширования?

Я пробовал разные заголовки Cache-Control, такие как max-age и s-maxage Я пытался изменить время ttl в моем облачном фронте

Я установил Кэширование объектов на Настроить и:

Min TTL is 0
Max TTL is 5
Default TTL is 5

Мои исходные заголовки:

HTTP/1.1 200 OK
Date: Thu, 09 May 2019 14:15:17 GMT
Server: Apache/2.4.39 (cPanel) OpenSSL/1.0.2r mod_bwlimited/1.4 mpm-itk/2.4.7-04
Last-Modified: Thu, 09 May 2019 14:12:57 GMT
ETag: "e1ab8bae1d38bfceecece2c36df378c1-gzip"
X-Robots-Tag: noindex, follow
Link: <https://www.example.com/json/>; rel="https://api.w.org/"
Cache-Control: max-age=5
Vary: Accept-Encoding,User-Agent
Content-Encoding: gzip
Content-Length: 789
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: application/json
...