resolver nginx
什么是 nginx resolver?
为了解析 DNS 记录,Nginx 实现了 DNS 解析器,也称为 resolver。resolver 模块实现了本机解析功能,同时也支持使用远程 DNS 服务器进行解析。 resolver 模块能够缓存 DNS 记录,降低 DNS 解析时间,提高网站响应速度。
如何开启 nginx resolver?
在 Nginx 配置文件中加上以下代码即可开启 resolver 模块:resolver xx.xx.xx.xx;
nginx resolver 的工作原理
当 Nginx 接收到一个域名请求,它会将主机名和端口写入到 HTTP 请求头部中,通过 resolver 模块获取目的 IP 地址,再通过 TCP 协议与目标服务器建立连接。resolver 模块首先在本地主机文件 /etc/hosts 中查找 IP,如果没有找到,则向本地 DNS 解析器发起查询,如果本地 DNS 解析器也未能解析成功,resolver 模块则默认向 Nginx 前置服务器上的 DNS 服务器进行查询。
如何配置 nginx resolver 的超时时间?
如果 DNS 解析时间过长或者 DNS 解析失败,会对网站的响应速度产生影响,因此,需要对 resolver 模块的超时时间进行配置。设置超时时间如下:resolver_timeout 5s;
nginx resolver 的缓存
Nginx resolver 模块会将解析的 DNS 记录缓存下来,下次再访问相同的域名时就可以直接使用缓存,从而避免了重新解析 DNS 的过程。缓存时长可以通过以下配置进行设置:resolver_cache_valid 300s;