在nginx中转发匹配的特定位置并代理重定向

在nginx中转发匹配的特定位置并代理重定向,nginx,reverse-proxy,Nginx,Reverse Proxy,如果与nginx中的后端匹配,我将尝试转发特定的uri。比如说 将/a/b/c转发到/a/b/c,其中*是从正则表达式自动填充的变量 当前配置如下所示,不知道如何继续上面的操作 location /a/b/c/ { proxy_set_header Host $proxy_host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $re

如果与nginx中的后端匹配,我将尝试转发特定的uri。比如说

将/a/b/c转发到/a/b/c,其中*是从正则表达式自动填充的变量

当前配置如下所示,不知道如何继续上面的操作

location /a/b/c/ {
    proxy_set_header        Host $proxy_host;
    proxy_set_header        X-Forwarded-Proto $scheme;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_read_timeout      180m;

    proxy_pass http://int.hostname.com/v2/e/t/a/b/c;
    proxy_redirect default;
}

如果希望位置匹配以/a/b/c/结尾的任何URI,则需要使用正则表达式语法。有关详细信息,请参阅

proxy_pass语句的URI后缀是可选的。在缺少URI后缀的情况下,原始URI将不经修改地传递。有关详细信息,请参阅

例如:

location ~ /a/b/c/$ {
    ...
    proxy_pass http://int.hostname.com;
    ...
}

为了澄清,如果uri与/*/a/b/c匹配,您是要发送到内部服务器上的同一路径,还是进行了一些修改?e、 g.如果有人点击/v1/a/b/c,您是否只是在与/v1/a/b/c进行内部对话?或者是/v1部分不知何故important@JoshuaDeWald也一样/v1/a/b/c将作为/v1/a/b/c传递给后台。类似地,/sample/v2/a/b/c将作为/sample/v2/a/b/c*传递表示任何路径。谢谢谢谢,我来看看那些文件。你是说我真的需要写些什么吗?实际上,URI可能不会以/a/b/c/结尾。考虑到这一点,如果它没有以它结尾,该怎么办?您的意思是/a/b/c/嵌入到URI中的任何位置?在这种情况下,删除终止$。是的,就是这样,它也应该将完全相同的数据转发到后端。若URI不包含/a/b/c/内容,那个么它不应该将URI转发到后端。我希望这能奏效。如果还有什么我需要处理的,请告诉我。我将测试它。