Nginx 将位置路径复制到 proxy_pass

Nginx 将位置路径复制到 proxy_pass

在 nginx 中我希望将位置路径复制到 proxy_pass,但我不想复制完整路径。

如果网址是https://127.0.0.1/path1/name1,我只是想复制path1

如下图所示:

location ^~ /path1/{
    --some if else statement--
    proxy_pass https://backend/path1/;
}

我尝试使用$request_uri,但它也会/path1/name1显示

答案1

只需使用rewrite指令,如下所示proxy_pass

当使用指令在代理位置内更改 URI 时rewrite,相同的配置将用于处理请求(break):

[...]

在这种情况下,指令中指定的 URI 将被忽略,并且完整更改的请求 URI 将传递给服务器。

就是这样:

location ^~ /path1/ {
    rewrite ^ /path1/ break;
    proxy_pass https://backend;
}

相关内容