問題症狀
Nginx的錯誤日志里,有如下信息:
no resolver defined to resolve example.com
問題原因
這已經和明顯了,就是提示你沒有定義resolver指令。
Nginx就這樣,它不理會系統的DNS(/etc/resolv.conf)配置。
如果你在配置文件中使用了域名或主機名,一定要配置resolver指令。
解決方案
配置resolver指令,指定DNS服務器。
詳細參考「resolver」手冊。
# 在k8s中
「kubernetes dns resolver in nginx」
讓它走集群的DNS:resolver kube-dns.kube-system.svc.cluster.local
這里要使用FQDN,否則容器里的/etc/resolv.conf中就要配置search指令。
關於「search」指令可以參考「In /etc/resolv.conf, what exactly does the “search” configuration option do?」一文。
相關鏈接
Websites show 502 Bad Gateway: no resolver defined to resolve example.com
Nginx resolver address from /etc/resolv.conf
A Quick Review of Key DNS Features
Module ngx_http_upstream_module/upstream
Module ngx_http_core_module/resolver
