【发布时间】:2019-12-20 15:52:22
【问题描述】:
我正在尝试让 proxy_pass 使用自定义变量
location / {
set $proxy_pass_dest destination;
proxy_pass http://$proxy_pass_dest;
}
它不起作用。然而:
location / {
proxy_pass http://destination;
}
工作得很好。我做错了什么?
【问题讨论】:
-
它回答了你的问题stackoverflow.com/a/8635267/11714114 吗?
-
这取决于 destination 代表什么。如果有域名,则需要解析器,如果有 URI 部分,则需要指定完整的 URI。
-
有域名。这一切都在 kubernetes 中,
http://destination;工作正常 - 解析器能够完成这项工作。它不适用于变量$proxy_pass_dest,我正在努力找出原因。 -
好的,我刚刚在 kubernetes 中运行的 nginx pod 中确认了它(使用变量
$proxy_pass_dest:):2019/12/23 09:05:53 [error] 6#6: *157 no resolver defined to resolve destination -
如果我使用
http://destination;,则 nginx.log 中没有错误,因此名称被解析。显然问题仅限于使用变量。我试过resolver kube-dns.kube-system.svc.cluster.localresolver coredns.kube-system.svc.cluster.localresolver 127.0.0.1,但没有运气。最终得到了根本不使用变量的解决方法。
标签: nginx kubernetes proxypass