Vladimir Sopot
February 10, 2019 04:42PM
Доброе утро!

Строим вот такой просто кэшер уменьшенной статики. Для простоты добавляем это в 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
Subject Author Posted

proxy_store и переменные

Vladimir Sopot February 10, 2019 04:42PM

Re: proxy_store и переменные

Maxim Dounin February 10, 2019 08:06PM

Re: proxy_store и переменные

Anonymous User February 11, 2019 01:12AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 88
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready