如果使用多个斜杠,如何将 nginx 中的 proxy_cache_key 与 proxy_pass 中的路径匹配?

如果使用多个斜杠,如何将 nginx 中的 proxy_cache_key 与 proxy_pass 中的路径匹配?

我收到以下形式的请求http://host.example/foo/或者http://host.example/foo//请求被发送到后端服务器proxy_pass http://backend;并使用密钥进行缓存,proxy_cache_key "$scheme://$host$uri$is_args$args"然后后端决定如何处理多个斜线。

但是如果 /foo// 重定向到 /foo/,则该条目将使用与 /foo/ 相同的缓存键保存,从而导致重定向循环。

现在我当然merge_slashes on;想保留它,因为有几个位置匹配,如果没有它就会变得复杂。

有没有类似$unmerged_uri这样proxy_pass并且proxy_cache_key匹配的东西?

相关内容