我正在尝试为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;
}