【问题标题】:Dynamix Nginx proxy-pass with a variable from the location pathDynamix Nginx 代理传递,带有来自位置路径的变量
【发布时间】:2021-04-03 19:29:13
【问题描述】:

我想要实现的是对给定的 URL 使用代理通行证,并且代理通行证域名取决于位置 URL。 像这样的:

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

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

【问题讨论】:

    标签: nginx location


    【解决方案1】:

    我已经在这个问题上度过了我的周末。但我能够解决它。 首先,当您想使用变量来构造 proxy_pass 域时,您需要使用解析器。更多细节可以在这篇文章中找到:https://dev.to/danielkun/nginx-everything-about-proxypass-2ona

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

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

    如果我们有类似的请求:https://example.com/1/api/auth/login
    pass_proxy 会将请求转发到:http://server-1:8080/api/auth/login

    【讨论】:

      猜你喜欢
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-11
      • 2014-10-17
      • 1970-01-01
      • 2017-10-10
      相关资源
      最近更新 更多