Назад | Перейти на главную страницу

NGINX, прокси-кеш и динамический URI

У меня есть обратный прокси-сервер NGINX, который находится перед сервером node.js (экспресс). С довольно базовой конфигурацией. Проблема, с которой я столкнулся, связана с функцией кеширования прокси-сервера NGINX. Вот установка.

http {
  proxy_cache_path /tmp/nginx/zone1 levels=1:2
                     keys_zone=zone1:10m max_size=10g
                     inactive=10m use_temp_path off;
  ...
  server {

    ...
    location /assets/ {
      proxy_pass $frontend$request_uri;
      proxy_cache_key "$scheme$request_method$host$request_uri";
      proxy_cache zone1;
      proxy_cache_valid 200 302 10m;
      proxy_cache_lock on;
      add_header X-Proxy-Cache $upstream_cache_status;
      access_log off;
    }
    ...
  }
  ...
}

Наш URI для активов выглядит так /assets/1.0.0/(.css|.js|.png|etc..). Мы обновляем версию в URI во время сборки, поэтому она часто меняется, что, как я предполагаю, должно сделать недействительным proxy_cache_key и NGINX должен вернуться вверх по течению, чтобы получить новый активы. Но этого никогда не бывает. У меня просто осталась моя html-страница без стиля.

Как только я очищаю кешированные файлы вручную и выдаю nginx -s reload снова все в порядке. Я что-то упускаю? Большое спасибо!