admin管理员组

文章数量:1033155

docker 搭建nginx提示 host not found in upstream

docker 搭建nginx提示 host not found in upstream,

代码语言:txt复制
nginx: [emerg] host not found in upstream "xxx" in /etc/nginx/nginx.conf:xx

docker里面里面有很多项目,都是通过bridge网络进行配置,由于启动顺序或者更新问题,会导致部分host不存在,然后提示该错误,然后无法启动。原因是nginx 启动时,会对其配置的 upstream 进行 DNS 解析测试,如果无法解析成功则会报错无法启动。但是,当我们将 upstream 修改为变量时,nginx 不会进行测试,以此绕过这个问题。

resolver 则为 Nginx 设置 DNS 服务器,Nginx会动态利用 resolver 设置的DNS服务器(本机设置的 DNS 服务器或 /etc/hosts 无效),将域名解析成 IP,proxy 模块会将请求转发到解析后的IP上。

此时可以讲host设置位变量

代码语言:conf复制
location /test {

    resolver 127.0.0.11 10s; # docker 内部dns解析
    set $ht docker-host;
    proxy_pass http://$ht;
}

参考 /

docker 搭建nginx提示 host not found in upstream

docker 搭建nginx提示 host not found in upstream,

代码语言:txt复制
nginx: [emerg] host not found in upstream "xxx" in /etc/nginx/nginx.conf:xx

docker里面里面有很多项目,都是通过bridge网络进行配置,由于启动顺序或者更新问题,会导致部分host不存在,然后提示该错误,然后无法启动。原因是nginx 启动时,会对其配置的 upstream 进行 DNS 解析测试,如果无法解析成功则会报错无法启动。但是,当我们将 upstream 修改为变量时,nginx 不会进行测试,以此绕过这个问题。

resolver 则为 Nginx 设置 DNS 服务器,Nginx会动态利用 resolver 设置的DNS服务器(本机设置的 DNS 服务器或 /etc/hosts 无效),将域名解析成 IP,proxy 模块会将请求转发到解析后的IP上。

此时可以讲host设置位变量

代码语言:conf复制
location /test {

    resolver 127.0.0.11 10s; # docker 内部dns解析
    set $ht docker-host;
    proxy_pass http://$ht;
}

参考 /

本文标签: docker 搭建nginx提示 host not found in upstream