InSys
@InSys
Веб-разработчик

Как проксировать и кешировать статику на длительный период?

Есть некий удаленный сервис, по функционалу похож на каталог товаров. У него есть АПИ благодаря которому мы можем выводить этот список товаров на нашем проекте. Но вот незадача, удаленный ресурс частенько падает.

Кешировать данные товаров через АПИ мы научились, и по факту, на нашем проекте работаем с кешированными данными. Но вся беда в картинках каждого товара. Как только падает удаленный сервис, у нас пропадают картинки товаров, что очень сильно сказывается на юзабилити проекта, и вообще выглядит убого.

Для понимания объемов. Товаров в каталоге около 10000. Картинок у каждого в среднем 20. Плюс 3 размера каждой картинки, итого около 600 000 различных изображений. Это около 80ГБ данных. Список товаров динамичен, т.е. товары могут добавляться, могут удаляться. Но URL каждой картинки уникален, т.е. ситуации что по такому то URL картинка вдруг изменилась, быть не может.

Есть идея - сделать php скрипт проксирующий картинки с сервиса, попутно складывая их к нам на сервер, и дальше отдавая их nginx-ом напрямую. В принципе это реализуемо. Но честно сказать, мне бы очень хотелось исключить php и вообще какую бы то ни было динамику в этом месте.

Чисто теоретически возможно ли средствами nginx сделать что то подобное? Или Varnish? Какой из них мне подойдет больше?

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

Или все же выбросить дурные мысли из головы, и сделать, как я говорил, скрипт. Опять же встает вопрос, как удалять устаревшие картинки. Т.е. в идеале бы удалять картинки из нашего хранилища, к которым не обращались допустим месяц.

В общем подскажите пожалуйста в какую сторону мне копать.
  • Вопрос задан
  • 930 просмотров
Решения вопроса 1
InSys
@InSys Автор вопроса
Веб-разработчик
Если кому будет интересно, как была решена задача в итоге:
https://intsystem.org/server/proxy-resize-cache-im...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
Чисто теоретически возможно ли средствами nginx сделать что то подобное?

https://www.digitalocean.com/community/tutorials/u...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы