Большое спасибо!
> On 11 Feb 2019, at 04:04, Maxim Dounin <mdou...@mdounin.ru> wrote: > > Hello! > >> On Mon, Feb 11, 2019 at 12:40:53AM +0300, Vladimir Sopot wrote: >> >> Строим вот такой просто кэшер уменьшенной статики. Для простоты >> добавляем это в nginx.conf.default >> >> resolver 8.8.8.8; >> >> server { >> listen *:80; >> server_name “~^cache-(\d).domain.ru$"; >> set $store_id $1; > > Так делать в сколько-нибудь сложных конфигурациях нельзя. > > После любого внутреннего перенаправления - серверные rewrite'ы > отрабатают заново, и "set" будет использовать $1 от последнего > выполневшегося регулярного выражения. И в вашем случае это будет > совсем не регулярное выражение из server_name. > > Если хочется вытаскивать какую-либо информацию из server_name - > это надо делать с помощью named captures, как-то так: > > server_name ~^cache-(?<store_id>\d)\.domain\.ru$; > > [...] > >> Всё работает, ничего не кэшируется. Раскомментирую 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'а предугадать, какое регулярное выражение было выполнено > последним - редко когда возможно, и подчас их их использование > ведёт к появлению проблем в самых неожиданных местах. > > -- > Maxim Dounin > http://mdounin.ru/ > _______________________________________________ > nginx-ru mailing list > nginx-ru@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-ru _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru