У меня прокси nginx такой:
proxy_cache_path /var/nginx-cache/ levels=1:2 keys_zone=m3cache:10m max_size=2500m
inactive=1m use_temp_path=off;
proxy_cache_key "$scheme$request_method$host$request_uri";
location /proxy/ {
proxy_pass http://example.com/;
}
Я хочу кешировать .jpg
файлы на 2 часа, и .txt
файлы за 1 минуту.
Я пытался;
if ($uri ~ "\.txt$") { .. }
, но, по-видимому, его невозможно использовать внутри директив if.location ~ \.txt$
но потом location /proxy/
не запускается. Мне это нужно, потому что у меня будет несколько URI прокси.location ~ /proxy/(.*)\.ts
но я не могу использовать proxy_pass
с совпадениями регулярных выражений.Кто-нибудь знает, как я могу это сделать? Спасибо!
редактировать для будущих поисков:
очевидно, вы можете использовать регулярное выражение в местоположении, но оно должно включать такую переменную, как: proxy_pass http://example.com/$1;
. Я написал 2 места для разных расширений файлов, и теперь он работает