Nginx无法从docker 1.10.1中的嵌入式DNS获取主机
我有几个服务在docker容器中运行,一个nginx服务器在它们前面,所有容器都在同一个docker网络中.在docker 1.10之前我创建了一个dnsmasq容器并在nginx中设置了解析器,因此可以从nginx中发现我的服务. 但升级到docker 1.10.1后,dnsmasq映像不起作用.经过一些研究,我尝试使用地址127.0.0.11中的新“嵌入式dns”(我认为这应该是在docker网络中使用的正确方法).虽然我可以从nginx容器ping到服务容器,但是nginx继续发送回来无法解决(3:Host not found). 然后我尝试使用host命令,我得到了非常令人困惑的结果:(第一个ip地址,然后找不到主机 – 与我从nginx获得的代码相同)
Ping工作
以下是我的配置的简化版本: 泊坞窗,compose.yml
容器中的nginx.conf
这也是来自主持人的详细结果:
我的码头版
谁能帮我弄清楚出了什么问题?或者如何深入研究这个问题? 最佳答案
这是因为docker dns服务器不执行ipv6,但是从1.5.8:http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver开始,nginx解析器同时查询ipv6和ipv4
您可以在nginx中的解析器行上轻松禁用ipv6(参见上面的链接,它只是ipv6 = off)然后它应该开始为你工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Nginx:限制每个IP到后端的同时连接数
- nginx-Gitlab docker注册表拉取失败的EOF
- 带有Docker的WordPress和Nginx:未加载静态文件
- ruby-on-rails – 开发,登台和生产环境rails app
- 与环境无关的301/302重定向与PHP
- nginx/uwsgi服务器的持久内存Python对象
- python – 如何在执行模式下使用SELinux运行Flask Nginx u
- php-Magento从旧Urls重定向到具有商店(语言)代码的新Urls
- nginx – 如何在不解密的情况下路由HTTPS加密数据包?
- php – 在Apache/Nginx设置中刷新输出缓冲区