Приветствую всех.Как настроить location в nginx так, чтобы
для get-запросов вида /index.php?p1=val1&p2=val2&p3=val3
проверять существует ли файл /tmp/val1_val2_val3
если такой есть, то отдаем его, иначе отправляем к бэкенду php-fpmСпасибо.
> Приветствую всех.
> Как настроить location в nginx так, чтобы
> для get-запросов вида /index.php?p1=val1&p2=val2&p3=val3
> проверять существует ли файл /tmp/val1_val2_val3
> если такой есть, то отдаем его, иначе отправляем к бэкенду php-fpm
> Спасибо.Если решать задачу в лоб, то как-то так:
location ~ /index.php {
if ($args ~* "p1=val1&p2=val2&p3=val3") {
rewrite ^ /static/$arg_p1/$arg_p2/$arg_p3 last;
}
}location ~ ^/static/(.*)/(.*)/(.*)$ {
root "/tmp";
set $filename $1_$2_$3;
try_files /123/$filename @backend;
}location @backend {
proxy_pass ...
}
Хотя косячно, на @backend придется получать изначальное значение $filename.
> Хотя косячно, на @backend придется получать изначальное значение $filename.Так файл скрипта всегда index.php, или портится вся строка запроса с get-параметрами?
Благодарю за помощь.