Кэширование всех изображений на внешнем сайте через Cloudflare

Вот моя ситуация:

У меня есть веб-приложение, которое использует много изображений на удаленном сервере. Мое веб-приложение находится за Cloudflare, хотя сервер, на котором размещены изображения, не... и этот сервер может быть очень медленным. Иногда это может занять около 5 секунд на изображение.

Я хотел бы использовать Cloudflare для проксирования запросов к этому внешнему серверу, а также кэшировать их на неопределенный срок или, по крайней мере, как можно дольше. Изображения никогда не меняются, поэтому я не возражаю против их длительного хранения в кэше.

Это то, что я должен настроить в рабочем? Как правило страницы? Или просто не использовать CLoudflare таким образом?


person bitten    schedule 07.06.2019    source источник


Ответы (2)


Если вы не можете изменить заголовки исходного сервера, вы можете попробовать следующий фрагмент кода в своем воркере:

fetch(event.request, { cf: { cacheTtl: 300 } })

Согласно документам:

Эта опция заставляет Cloudflare кэшировать ответ на этот запрос, независимо от того, какие заголовки видны в ответе. Это эквивалентно установке двух правил страницы: «TTL Edge Cache» и «Cache Level» («Кэшировать все»).

person Tadeusz Wójcik    schedule 12.06.2019

Я думаю, что вам обычно просто нужен очень длинный заголовок кэширования для ваших изображений. Что-то типа:

Cache-Control: public; max-age=31536000
person Zack Bloom    schedule 09.06.2019
comment
Проблема в том, что у меня нет доступа к серверу, обслуживающему изображения. Он находится в другом домене, проходит через другой CDN ???? - person bitten; 09.06.2019