Nginx 提示host not found in upstream 错误解决方法
Posted 黄海的编程知识世界
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 提示host not found in upstream 错误解决方法相关的知识,希望对你有一定的参考价值。
nginx 通过 proxy_pass 和 upstream server 通信的时候需要手动指定 resolver。某些时候 DNS 解析失败就会出现这个错误: domain.com could not be resolved. 可以指定多个 DNS 并重置域名 TTL 延长 nginx 解析缓存来保障解析成功率: resolver 223.5.5.5 223.6.6.6 1.2.4.8 114.114.114.114 valid=3600s; 如果还有解析错误,可以用 dnsmasq 在本地自建 DNS,顺带还有加速解析的好处: #/etc/dnsmasq.conf domain-needed bogus-priv cache-size=51200 listen-address=127.0.0.1
#server=223.5.5.5 另外需要注意的是 proxy_pass 并不是每次请求都会进行解析,如果 upstream IP 频繁变动,需要强制解析: # via http://forum.nginx.org/read.php?2,215830,215832#msg-215832 resolver 127.0.0.1; set $backend "foo.example.com"; proxy_pass http://$backend;
|
[root@localhost ~]# ping www.baidu.com
ping: unknown host www.baidu.com
解决:
首先确定已经连接上路由器,并且路由器能够访问外网,可以通过访问网关进行确定
[root@localhost ~]# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=2.96 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=1.75 ms
如果确定网络没问题的情况下, 可以通过如下步骤寻找解决办法:
1) 确定设置了域名服务器, 没有的话, 建议设置Google的公共DNS服务, 可通过cat /etc/resolv.conf查看当前的DNS设置
2) 确保网关已设置 ,通过route命令查看
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 1 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
网关和dns都配置好了基本就可以上网了。
以上是关于Nginx 提示host not found in upstream 错误解决方法的主要内容,如果未能解决你的问题,请参考以下文章
nginx启动错误: [emerg] host not found in upstream "<host>"
nginx: [emerg] host not found in upstream "baafile.yiche.com" in /usr/local/etc/nginx/ngin
错误提示Class ‘StatisticClient‘ not found in
Ubuntu Server 上在安装Nginx时执行./confgiure后提示:C compiler cc is not found
linux使用vi命令错误提示:E558: Terminal entry not found in terminfo 'vt100' not known.
zabbix_server.log大量提示cannot send list of active checks to "IP": host [HostName] not found