Доброе утро!

Строим вот такой просто кэшер уменьшенной статики. Для простоты добавляем это в 
nginx.conf.default

resolver 8.8.8.8;

server {
        listen *:80;
        server_name “~^cache-(\d).domain.ru$";
        set $store_id $1;

        root /wwwroot/domain.ru/cache-$store_id/a/;

        location “~^.+\.jpg$" {
                error_page 404 /store$uri;
                }

        location "~^\/store/(.+\.jpg)$" {
                internal;
#               proxy_store /wwwroot/domain.ru/$store_id/a/$1;
                proxy_pass http://$host/resize/$1;
                }

        location "~^\/resize/(.+\.jpg)$" {
                image_filter crop 140 140;
                proxy_pass http://ori-$store_id.domain.ru/$1;
                proxy_set_header Cookie '';
                proxy_set_header User-Agent '';
                }
        }

Всё работает, ничего не кэшируется. Раскомментирую proxy-store и получается ад: 
в $store_id попадает всё, что матчится (.+\.jpg) и складывается в 
'/wwwroot/domain.ru/cache-/path/to/original/jpg/request' 
<http://domain.ru/cache-/path/to/original/jpg/request'>, например. То есть 
$store_id почему-то перезаписывается следующим $1. Почему так и как это 
исправить, кроме как делать отдельный server{} для каждого $store_id?

Спасибо!







_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить