使用位置路径中的变量进行Dynamicx Nginx代理传递

使用位置路径中的变量进行Dynamicx Nginx代理传递,nginx,location,Nginx,Location,我想要实现的是对给定URL使用代理传递,并且代理传递域名取决于位置URL。 大概是这样的: location ~ ^/([0-9]+)/api/ { proxy_pass http://server-$1:8080; } 逻辑上是URL,例如:/4/api/auth/login使用代理http://server-4:8080/api/auth/login我已经在这个问题上度过了周末。但我能解决它。 首先,每当您想要使用一个变量来构造代理传递域时,您都需要使用解析器。有关本文的更

我想要实现的是对给定URL使用代理传递,并且代理传递域名取决于位置URL。 大概是这样的:

location ~ ^/([0-9]+)/api/ {
      proxy_pass http://server-$1:8080;
  }

逻辑上是URL,例如:/4/api/auth/login使用代理http://server-4:8080/api/auth/login

我已经在这个问题上度过了周末。但我能解决它。 首先,每当您想要使用一个变量来构造代理传递域时,您都需要使用解析器。有关本文的更多详细信息,请参见:

这就是我解决问题的方法:

location ~ ^/([0-9]+)(/api/.*) {
    
    resolver 127.0.0.11 ipv6=off;
    proxy_pass http://server-$1:8080$2;

  }
如果我们有如下请求:
pass_代理将请求转发到:http://server-1:8080/api/auth/login