image filter + proxy store

Priority1 nginx-forum at nginx.us
Sat Oct 13 21:28:58 UTC 2012


tzirulnicov Wrote:
-------------------------------------------------------
> Хочется силами nginx делать превьюшки, только если они ранее не
> делались.
> 
> server{
>     listen 81;
>     server_name www.***.ru ***.ru;
>     root /home/site_path/htdocs;
> 
>     location ~ ^/img_path/.*\.(?:jpg|jpeg|gif|png)_small1.jpeg$ {
>        rewrite ^/img_path/(.*)_small1.jpeg$ /ee/wwfiles/$1;
>        
>        break;
>     }
> }
> 
> 
> server{
>         listen 80;
> ...
>         location ~ ^/img_path/.*\.(?:jpg|jpeg|gif|png)_small1.jpeg$ {
>                 proxy_pass http://127.0.0.1:81;
>                 proxy_set_header Host $host;
> 
>                 proxy_store on;
>                 proxy_store_access user:rw group:rw all:r;
>                 proxy_temp_path /home/img_cache_path;
>                 root /home/img_cache_path;
>         }
> }
> 
> - кэш не работает, превьюшка создаётся заново при каждом запросе и
> сохраняется в /home/img_cache_path;
> Почему? Как сделать сохранение превьюшек, созданных при помощи image
> filter?

Попробуй примерно вот так:

location ~ ^/img_path/.*\.(?:jpg|jpeg|gif|png)_small1.jpeg$ {
root /home/img_cache_path;
try_files $uri /create_image$uri
}

location ~ ^/img_cache_path/img_path/.*\.(?:jpg|jpeg|gif|png)_small1.jpeg$
{
internal;
root /home;
proxy_pass http://127.0.0.1:81;
image_filter resize - 81;
proxy_set_header Host $host;

proxy_store on;
proxy_store_access user:rw group:rw all:r;
proxy_temp_path /home/img_cache_path;
}

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,231766,231767#msg-231767



Подробная информация о списке рассылки nginx-ru