Коллеги, привет!
Пытаюсь настроить нормальный кеш. У меня есть один location, который проверяет, есть ли файл в папке и (если его нет) переадресовывает на именной location (тот, что @). Именной location делает proxy_pass на nodejs сервер. Хотелось бы, чтобы все файлы, которые приехали с nodejs кешировались. Но только файлы (js/css). Есть какой-то адекватный способ поставить такое ограничение? proxy_cache_bypass похож на то, что нужно, но не понятно, как его настроить.
Пример того, как настроил сейчас будет в спойлере ниже. При таких настройках nginx вообще не сохраняет кеш в /var/cache/nginx, а при попытке его закгрузить ругается, что файла нет в /usr/share/nginx/html/.
Текущие настройки (не работают)proxy_cache_path /var/cache/nginx levels=2 keys_zone=pagecache:5m inactive=10m max_size=50m;
server {
listen 80;
server_name domain.ru;
proxy_cache_bypass 1;
location ~(\.js|\.css)$ {
proxy_cache_bypass 0;
}
location / {
root lp;
rewrite ^(/pricing|/contacts)/?(.*) /$2 break;
proxy_cache pagecache;
proxy_cache_valid 10m;
try_files $uri/index.html $uri @custom;
}
location @custom {
proxy_pass http://ru_backend;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}