gpt4 book ai didi

networking - Docker 网络 Nginx 解析器

转载 作者:IT老高 更新时间:2023-10-28 12:35:24 26 4
gpt4 key购买 nike

我正在尝试删除配置中已弃用的 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;
  1. 我在名为 nettest 的 Docker 网络上启动了一个主机名为 confluence 的容器。
  2. 然后我在网络 nettest 上启动了 nginx 容器。
  3. 我可以从 nginx 容器内 ping confluence
  4. confluence 列在 nginx 容器的 /etc/hosts 文件中
  5. nginx 日志说 send() failed (111: Connection denied) while resolve, resolver: 127.0.0.1:53
  6. 我尝试了来自 /etc/resol.conf
  7. 的 docker network default dns resolver 127.0.0.11
  8. nginx日志说confluence无法解析(3:找不到主机)

任何人都知道如何使用 Docker 网络配置 nginx 解析器或如何强制 Nginx 正确解析 Docker 网络主机名的替代方法?

最佳答案

首先,您应该使用位于 127.0.0.11 的 Docker 嵌入式 DNS 服务器。

您的问题可能是由以下之一引起的:

  1. nginx 正在尝试使用 IPv6(AAAA 记录)进行 DNS 查询。

    https://stackoverflow.com/a/35516395/1529493解决方案。

    基本上是这样的:

    http {
    resolver 127.0.0.11 ipv6=off;
    }

    这可能不再是 Docker 1.11 的问题:

    Fix to not forward docker domain IPv6 queries to external servers (#21396)

  2. 注意不要意外覆盖 resolver 配置指令。就我而言,我在 server block resolver 8.8.8.8 8.8.4.4; 来自 Mozilla's SSL Configuration Generator ,它覆盖了 http block 中的 resolver 127.0.0.11;。这让我摸不着头脑……

关于networking - Docker 网络 Nginx 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35744650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com