• Как реализовать ресайз изображений на лету средствами php?

    @kaasius
    Это можно решить на уровне nginx c помощью try_files и X-Accel-Redirect, вообще без кеша.
    Например, так:
    location <локейшен с картинками>{
        try_files $uri @resize;
    }
    location @resize {
        proxy_pass http://<адрес ресайзера с параметрами>;
    }
    location /notexist.gif {
        root /path/to/notexist/folder;
    }


    Тогда энджи сначала попытается найти файл (ресайзер должен его сохранить там перед отдачей), если не найдет - попробовать отресайзить (запустится ресайзер, который, напомню, должен сохранить картинку на диск перед отдачей), а если ресайзер не нашел исходную картинку - ему надо вернуть X-Aссel-Redirect заголовок с uri /notexist.gif

    Подробнее про X-Accel можно почитать тут wiki.nginx.org/X-accel

    Использовать же для этого кеширование энджи - неправильный путь, ибо вы получите недетерминированный результат.
    Ответ написан
    Комментировать