Nginx 反向缓存 301 重定向(永久)

Ken*_*ins 7 nginx reverse-proxy 301-redirect

是否可以让 Nginx 缓存所有301重定向请求proxy_pass

例如:

请求 #1:客户端 A 请求 /some/path -> 发送到proxy_pass-> 导致 301 重定向到/some/other/path-> nginx 缓存此响应,因为它是 301 重定向。

请求 #2:客户端 B 请求 /some/path -> nginx 返回缓存的 301 重定向到/some/other/path.

Mic*_*ton 8

nginx 已经可以缓存 301 重定向。您可以使用proxy_cache_valid指令更改它们的缓存时间:

proxy_cache_valid 301 365d; # Cache permanent redirects for a whole year
Run Code Online (Sandbox Code Playgroud)


Ken*_*ins 4

我发现 @Michael 的答案让我明白了大部分内容,但是当我打开 时,它会自动缓存带有和 的proxy_cache文件。所以我最终得到了这个解决方案。ExpiresCache-Control

proxy_cache_path /tmp/nginx levels=1:2 keys_zone=main-cache:8m max_size=1000m inactive=600m;
proxy_temp_path /tmp/nginx/tmp;
proxy_cache main-cache;
proxy_cache_valid 301 60m;
proxy_cache_key "$scheme://$host$request_uri";
proxy_ignore_headers X-Accel-Expires Expires Cache-Control;
Run Code Online (Sandbox Code Playgroud)

  • 这就是缓存的作用。您从未在任何地方提到过您不想缓存其他任何内容。 (4认同)