我有一个 NGINX 反向代理,位于 node.js 服务器(express)前面。配置非常简单。我遇到的问题是 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
一切就都好了。我遗漏了什么吗?非常感谢!