Nginx/OpenResty 谨慎配置 8.8.8.8 作为 DNS server
2017-07-19 22:31
417 查看
目录
目录问题
分析
题外话
问题
Nginx resolver 配置:resolver 127.0.0.1 8.8.8.8;
项目中两处使用域名,一处为外网 CDN 域名,一处为 MySQL 集群域名(可能为内网私有域名,也可能为外网共有域名)。
部署完之后测试两处都能正常解析,但运行一段时间之后会报
db.example.com could not be resolved (3: Host not found)错误。
分析
用dig测试 DNS server 对两类域名的解析情况:
dig @127.0.0.1 www.baidu.com dig @127.0.0.1 db.example.com dig @8.8.8.8 www.baidu.com dig @8.8.8.8 db.example.com
127.0.0.1均能得到
ANSWER SECTION, 例如:
;; ANSWER SECTION: www.baidu.com. 8 IN CNAME www.a.shifen.com. www.a.shifen.com. 91 IN A 103.235.46.39
但
dig @8.8.8.8 db.example.com只能得到
AUTHORITY SECTION:
;; AUTHORITY SECTION: . 86398 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2017071900 1800 900 604800 86400
至此,原因很清楚了:Nginx 会轮询使用多个 DNS server, 测试时正好遇到了
127.0.0.1, 因此没问题,后续轮询到
8.8.8.8时出现了问题。
题外话
是不是所有的内网 IP 都只能用内网域名映射,答案是:否。AWS 的 MySQL 集群域名就是外网 DNS server(e.g.8.8.8.8) 可以解析的,但是其映射的 IP 确实内网 IP.
相关文章推荐
- Openresty nginx使用 luaJIT 配置!
- sco openserver的DNS和DHCP的配置
- 安装Nginx+Lua+OpenResty开发环境配置全过程实例
- 安装Nginx+Lua+OpenResty开发环境配置全过程实例
- "/usr/local/openresty/nginx/html/index.html" is forbidden (13: Permission denied), client: 10.0.4.118, server: localhost, request: "GET / HTTP/1.1"
- 安装Nginx+Lua+OpenResty开发环境配置全过程实例
- CORS 跨域问题, 以及作为api server 的正确配置, 后台 nginx 配置
- 安装Nginx+Lua+OpenResty开发环境配置全过程实例
- 安装Nginx+Lua+OpenResty开发环境配置全过程实例
- DNS Server 2 主从服务器配置
- nginx启动配置加载性能分析(一)-作为http服务器
- Open***-server配置文件参数详解(转)
- Oracle BI Server DNS 配置错误集
- SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用
- 在Ubuntu Server上源码安装OpenERP 8.0,并配置wsgi和nginx运行环境
- nginx 请求server与location配置定位
- [Linux] Ubuntu_9.04_server安装nginx+php(fastcgi)+nginx虚拟主机配置格式
- vue.js+nginx+openresty
- nginx 后端服务器配置端口 request.getserverPort