nginx proxy_pass to to eLB具有变量



我正在尝试为nginx设置一个代理规则,该规则将击中某些节点盒前面的内部负载板,该节点框中使用API。我想在地址中使用一个变量来强制其解决,因为地址在AWS中的动态程度。

原始设置工作正常,但偶尔指出的是不再在那里引起间歇性问题的地址:

location /protected/ {
  proxy_pass http://my-internal-aws-loadbalancer.com:8083/protected/;
}

但是,当我碰到同一路线时,这会产生404个错误:

location /protected/ {
  set $node "my-internal-aws-loadbalancer";
  proxy_pass http://$node:8083/protected/;
}

还要注意的一件事是这是邮政请求。我想我对为什么添加变量会破坏这一点感到非常困惑。

所以...在看了很多时,我相信我已经解决了。当在proxy_pass中使用变量时,nganx确实确实不相同。

本文非常有帮助。关于这种情况的整个文章的TLDR是添加变量的确会导致nginx在proxy_pass上的行为有所不同,因此从变量URL中删除了尾随的斜线并在解决问题之后可能发生的任何事情。

location ~ ^/protected/(.*)$ {
  resolver 8.8.8.8;
  set $node "http:///my-internal-aws-loadbalancer.com:8083/";
  proxy_pass $node/protected/$1;
}

相关内容

最新更新