在使用nginx做反向代理的,将请求发送到一个动态DDNS域名的时候,该动态DDNS域名对应的IP是A ,刚开始运行一切正常,但是当运行了一段时间以后,该动态DDNS域名对应的IP变了之后(例如对应的IP由A变为B),nginx的转发仍然还在向原先的IP A发送请求,导致反向代理中断,此时reload nginx后才会重新恢复正常,且日志显示数据转发到新的IP B了,请问如何让nginx自动去重新解析域名,而不用每次出现问题了人工去reload?

造成这个问题的主要原因是,在Nginx启动的时候会做域名解析,然后把IP缓存起来以后会一直使用解析到的IP并且不会再更改,除非重新启动Nginx,Nginx才会重新解析域名。

第一种解决方案,利用nginx的resolver

1、默认nginx会通过操作系统设置的DNS服务器(/etc/resolv.conf)去解析域名

2、其实nginx还可以通过自身设置DNS服务器,而不用去找操作系统的DNS

3、下面来讲一个这个resolver示例配置如下:

[code]server {
listen 8080;
server_name localhost;
resolver 114.114.114.114 223.5.5.5 valid=3600s;
resolver_timeout 3s;
location / {
proxy_pass http://mydomain.com;
}
}[/code]

参数说明:

# resolver 可以在http全局设定,也可在server里面设定
# resolver 后面指定DNS服务器,可以指定多个,空格隔开
# valid设置DNS缓存失效时间,自己根据情况判断,建议600以上
# resolver_timeout 指定解析域名时,DNS服务器的超时时间,建议3秒左右

#注意:当resolver 后面跟多个DNS服务器时,一定要保证这些DNS服务器都是有效的,因为这种是负载均衡模式的,当DNS记录失效了(超过valid时间),首先由第一个DNS服务器(114.114.114.114)去解析,下一次继续失效时由第二个DNS服务器(223.5.5.5)去解析,亲自测试的,如有任何一个DNS服务器是坏的,那么这一次的解析会一直持续到resolver_timeout ,然后解析失败,且日志报错解析不了域名,通过页面抛出502错误。

第二种解决方法——最佳解决方案是升级到tengine 2.1.2,淘宝出品的东西,已经自带了解决方案。

Tengine的模块ngx_http_upstream_dynamic_module,此模块提供了在运行时动态解析upstream中server域名的功能。

upstream backend {
dynamic_resolve fallback=stale fail_timeout=30s;
server a.com;
server b.com;
}

server {

location / {
proxy_pass http://backend;
}
}

关于Nginx反向代理DDNS的DNS缓存问题相关推荐

  1. 通过nginx反向代理配置,及缓存功能配置,加快CDN服务器各个节点的访问速度

    前言 若网站数据中心在国内,怎样才能加快海外访问速度呢?那就需要搭建一台CDN服务器,在海外机房,通过nginx反向代理的方式读取国内数据中心的数据,并且进行缓存.CDN服务器,及nginx反向代理配 ...

  2. Nginx反向代理DNS缓存问题

    Nginx反向代理DNS缓存问题 背景 内网环境通过Nginx反向代理访问外网,Nginx配置完成,启动后的一段时间内接口访问正常,一段时间之后,访问拒绝../nginx -s reload 重新加载 ...

  3. nginx反向代理指定dns

    项目中有一个站点一直采用nginx反向代理将请求转发请求到源站的对应域名下,之前在第一次配置的时候,配置文件写法如下: location / {proxy_set_header Host xxx.ab ...

  4. nginx 反向代理,动静态请求分离,proxy_cache缓存及缓存清除

    一,nginx反向代理配置 #tomcat 显然就是用户访问www.wolfdream.com(需要设置本地localhost,将www.wolfdream.com指向nginx所在IP)的时候(或将 ...

  5. Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解(1)

    大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统 ...

  6. 部署nginx反向代理及缓存

    第一,   nginx 的介绍 1 nginx 从0.7.48 版本后凯斯,支持烈士squid的缓存功能.该缓存是把URL及相关组合当作key,然后用md5编码哈希后保存在硬盘上,因此nginx 支持 ...

  7. nginx反向代理+缓存开启+url重写+负载均衡(带健康探测)的部署记录

    在日常运维工作中,运维人员会时常使用到nginx的反向代理,负载均衡以及缓存等功能来优化web服务性能. 废话不多说,下面对测试环境下的nginx反向代理+缓存开启+url重写+负载均衡(带健康探测) ...

  8. nginx反向代理缓存服务器构建

    博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 代理服务可简单的分为正向代理和反向代理: ...

  9. Nginx特性验证-反向代理/负载均衡/页面缓存/URL重定向

    原文发表于cu:2016-08-25 参考文档: Nginx 反向代理.负载均衡.页面缓存.URL重写等:http://freeloda.blog.51cto.com/2033581/1288553 ...

最新文章

  1. linux文件和目录管理指令,Linux 命令(文件和目录管理 - cat)
  2. 栈和排序(贪心+思维)
  3. hibernate注解实体类(Emp.java)
  4. Cisco——DHCPv6小实验
  5. 实际开发中的问题积累【积累】
  6. Linux操作系统中readelf命令常见用法
  7. android自定义软键盘
  8. 心电信号频谱图低通Matlab,心电信号处理分析.ppt
  9. 图像增广——图片旋转任意角度(python实现)
  10. 知网查重原理以及降重举例
  11. python累乘怎么写_怎么编写Python关于累乘的程序?
  12. NS-miracle安装
  13. 关于pc浏览器浏览外网出现ERR_EMPTY_RESPONSE的问题
  14. EXCEL按照文字颜色统计数量
  15. vim配置set nu
  16. java 导出excel带多种颜色
  17. 【Python作业】对股票数据分析处理
  18. 大创项目(记录自己的教训)
  19. php商城手机端省市显示,jQuery仿手机京东商城收货地址城市选择
  20. android照片美颜项目_照片美颜p图编辑app下载

热门文章

  1. 二、蜂鸣器与继电器的基本控制
  2. win7快捷键大集合
  3. 毕设存档——APAP with moving dlt实现流程
  4. 哈啰出行 - 铸将:领导力培养
  5. 按占比划分文件,并将文件名写入txt文件(train、valid、trainvalid、test)
  6. 行列式按行(列)展开定理——6种行列式的展开方式
  7. Ubuntu20.04 wifi连不上或频繁掉线解决办法
  8. 为什么黑帽子从不用鼠标,一直在敲键盘?看完长见识了
  9. 热敏电阻NTC、PTC
  10. 新消息:nmn对治疗帕金森的作用,nmn对脑部功效和作用