Docker网络Nginx解析器
我正在尝试摆脱配置中已弃用的Docker链接。Bad Gateway
当我重新创建容器时,剩下的就是摆脱那些nginx反向代理错误。
注意:我正在桥接模式下使用Docker网络。(docker network create nettest
)
我在nginx中使用以下配置代码段:
location / { resolver 127.0.0.1 valid=30s;
set $backend "http://confluence:8090";
proxy_pass $backend;
- 我
confluence
在Docker网络上以name 为主机名启动了一个容器nettest
。 - 然后,我在网络上启动了Nginx容器
nettest
。 - 我可以
confluence
从Nginx容器内ping confluence
在nginx容器的/etc/hosts
文件中列出- Nginx日志说
send() failed (111: Connection refused) while resolving, resolver: 127.0.0.1:53
- 我试过泊坞窗网默认DNS解析器
127.0.0.11
从/etc/resol.conf
- Nginx日志说
confluence could not be resolved (3: Host not found)
有人知道如何使用Docker Networks配置nginx解析器,或者如何强制Nginx正确解析Docker网络主机名的替代方法?
回答:
首先,您应该在使用Docker嵌入式DNS服务器127.0.0.11
。
您的问题可能是由以下原因之一引起的:
- nginx尝试将IPv6(AAAA记录)用于DNS查询。
基本上像这样:
http { resolver 127.0.0.11 ipv6=off;
}
Docker 1.11可能不再是问题:
修复了不将Docker域IPv6查询转发到外部服务器的问题(#21396)
- 注意不要意外覆盖
resolver
配置指令。在我来说,我曾在server
块resolver 8.8.8.8 8.8.4.4;
来自Mozilla的SSL配置生成,这是重写resolver 127.0.0.11;
的http
块。那让我挠了很久。
以上是 Docker网络Nginx解析器 的全部内容, 来源链接: utcz.com/qa/423924.html