Ресайз картинок. При загрузке на сервер или при отдаче?

Марат

Новичок
Ресайз картинок. При загрузке на сервер или при отдаче?

Здравствуйте!
У меня вопрос по логике хранения аватаров/картинок на сервере и отдачи их пользователям.

Сейчас аватары хранятся так: при загрузке изменяется размер до нужных размеров (два размера, уменьшенная и большая аватара), исходник удаляется.

Хотим сделать так, чтобы можно было при написании новых модулей на сайт не замарачиваться с размером аватары. По такой схеме:
На сервере храняться оригиналы. При запросе аватары nginx преобразует размер и сохраняет в кеш. То есть ссылка на аватару http://example.org/avatara/48x48/img.jpg где 48x48 - размер.

Отсюдого вопросы:
1. будет ли nginx чистить кеш? или закешированные файлы всегда остаются в системе?

2. как лучше оповещать nginx, что пользователь сменил аватару? Чтобы nginx пересоздал картинку, а не отдавал старую из кеша. Мне пока видится такой вариант: при изменении аватары записывать в базу уникальное значение и в ссылку на получение аватары подставлять это значение. То есть ссылка будет http://example.org/avatara/48x48/qwe.jpg при изменении аватары в базу записывается другое значение и ссылка уже http://example.org/avatara/48x48/ewq.jpg соответсвенно nginx будет пересоздавать картинку в кеше.

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

Вообще стоит ли делать так? Или по прежнему аватары ресайзить при загрузке на сервер, а не при отдаче?
 

fixxxer

К.О.
Партнер клуба
средствами nginx ресайз имеет смысл делать только в том случае, когда все иные способы недоступны, т.к. пока идет ресайз соединения не обрабатываются

на лету - только если очень жалко места на диске и/или запросов к картинкам минимальное колво
 
Сверху