美文网首页
Nginx 反向代理,DNS 缓存导致偶尔访问超时

Nginx 反向代理,DNS 缓存导致偶尔访问超时

作者: 清十郎sama | 来源:发表于2022-05-18 17:09 被阅读0次

问题描述

当我们通过 nginx 配置代理访问一个静态域名时,其默认只会在启动时做 dns lookup 然后把域名映射的具体 IP 缓存下来,

从此之后,如果我们不做 restart 或者 reload,域名所映射的 IP 都是不会变的,哪怕这个 IP 已经失效。如下图所示:

proxy_pass https://open.feishu.cn;

我们最近通过 nginx 搭建代理访问飞书公共API服务的时候就被这个坑到了:飞书域名背后的 IP 是动态的,而且隔一段时间某些 IP 就会失效。这就导致我们的代理服务,隔一段时间就会访问飞书失败。直接阻塞了我们的服务。

解决办法

以变量的方式定义要转发的域名:

resolver 1.1.1.1 2.2.2.2

set $feishu "open.feishu.cn;"

proxy_pass https://$feishu;

当把代理域名设置成变量后,我们需要手动定义 resolver 即 dns 解析服务地址。

Linux 服务器上的 DNS 服务地址可以通过以下命令获取:

cat /etc/resolv.conf

resolver 配置多个 DNS 服务地址时,IP 用空格隔开。

More

通过变量的方式配置后,Nginx 也并不会每次访问都做 DNS lookup,默认是缓存 5min(该时间来源于论坛,并为实际验证)。

通过 resolver 配置内的 valid 可以自定义 DNS 缓存的超时时间(建议不要太短):

resolver 1.1.1.1 2.2.2.2 valid=3600s

参考

相关文章

  • Nginx 反向代理,DNS 缓存导致偶尔访问超时

    问题描述 当我们通过 nginx 配置代理访问一个静态域名时,其默认只会在启动时做 dns lookup 然后把域...

  • nginx 网站服务

    1.nginx介绍1.1 nginx的特点nginx的基本特性 对静态资源高速高并发访问及缓存可使用反向代理加速,...

  • 第十九周作业

    1、搭建Tomcat集群,并通过nginx反向代理访问 反向代理示意图 测试环境: Nginx: 172.16.1...

  • nginx反向代理gitlab-ce

    环境现象 为了统一访问入口,我们反向代理访问gitlab-ce 实现功能 设置nginx反向代理 验证

  • Nginx反向代理配置与proxy_cache设置

    使用Nginx反向代理与proxy_cache缓存搭建CDN服务器的配置方法linux下通过Nginx反向代理和p...

  • Nginx的代理缓存设置

    Nginx的代理缓存设置 expires: 设置浏览器的缓存时间 (客户端缓存) 服务端设置缓存(反向代理缓存) ...

  • Nginx 优化

    nginx可以做什么? 可针对静态资源高速高并发访问及缓存。可使用反向代理加速,并且可进行数据缓存。具有简单负载均...

  • Nginx常用功能以及相关配置

    Nginx 常用的功能: 1、Http正向代理、反向代理 正向代理和反向代理的区别:1、正向代理:类似我们想要访问...

  • 缓存相关的

    web缓存服务器 varnish / squid / nginx cache 有什么不同? Nginx 反向代理为...

  • 静态缓存和动态缓存(基于thinkphp测试)

    动态缓存 静态缓存有 浏览器缓存 磁盘缓存 内存缓存 CDN(分布式缓存) Nginx反向代理缓存

网友评论

      本文标题:Nginx 反向代理,DNS 缓存导致偶尔访问超时

      本文链接:https://www.haomeiwen.com/subject/hdmaurtx.html