详解Nginx 动态 DNS 反向代理的几种写法
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章的更新拖了半个月,真的是感动中国了。Nginx 默认会缓存 DNS,大家都知道,如果做反向代理,其实是访问的目标 ip,所以一旦缓存了目标 ip 就会非常麻烦。茴字的四种写法远近闻名,万万没想
千家信息网最后更新 2026年10月31日详解Nginx 动态 DNS 反向代理的几种写法
这篇文章的更新拖了半个月,真的是感动中国了。
Nginx 默认会缓存 DNS,大家都知道,如果做反向代理,其实是访问的目标 ip,所以一旦缓存了目标 ip 就会非常麻烦。
茴字的四种写法远近闻名,万万没想到,Nginx 动态 DNS 反向代理也有 N 种玩法,这主要取决于你用的 Nginx 版本,当然运维告诉我,最好是不要用动态 DNS,但是基于业务需要,咱们也没有办法。
茴字的第一种写法:Nginx
在 Nginx 中通过设置变量可以曲线救国,当然有缺点,通过变量的方法没有办法进行负载均衡,非常麻烦,当然如果你只有单机(在实际业务场景中几乎不存在),还是可以一试的:
server { ... resolver 127.0.0.1; set $backend "http://dynamic.example.com:80"; proxy_pass $backend; ...}第二种写法:Nginx Plus
当然 Nginx 不太好用,增强版的 Plus 就提供了一个更棒的写法,它支持在 server 中写入:
server { ... resolver 127.0.0.1 valid=30s; proxy_pass http://upstream-sites; ...}第三种写法:Tengine
Tengine 是淘宝家的魔改 Nginx,其实我挺烦的,因为最开始我不知道我们用的是 Tengine,导致配置没有什么卵用,但是 Tengine 对于动态域名解析却支持的非常不错,官方文档写得也很清楚。
upstream backend { dynamic_resolve fallback=stale fail_timeout=30s; server a.com; server b.com;}server { ... location / { proxy_pass http://backend; }}其他
当然,还可以使用 Lua 脚本来实现,或者是别人的模块,但是考虑到怕鼓捣坏,我还是不乱折腾了,所以没有采取这种方案。
参考
ngx_http_upstream_dynamic_module - Tengine
Using DNS for Service Discovery with NGINX and NGINX Plus
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
写法
动态
支持
代理
业务
办法
变量
目标
缓存
还是
麻烦
不错
清楚
均衡
没想到
远近闻名
内容
单机
取决于
只有
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡网
天津市摩尔互联网科技
科技平台互联网
互联网为科技
青岛互联网科技公司
卓越科技(互联网 )
新浪科技互联网
万达互联网科技
互联网科技汛
云创客互联网科技公司
互联网科技博主是什么意思
互联网教育科技公司vipkid
互联网科技寓意
互联网大会黑科技排名
互联网校园科技培训
受益于互联网科技的高速发展
互联网科技公司实习生
互联网金融科技展
天津腾达互联网科技有限公司
高科技和互联网的现代国家
九亚互联网科技
互联网科技类展会
滨湖区互联网智能科技产品供应
互联网科技公司的市场部门
互联网软件和科技
中国科技创新与世界互联网大会
群盈汇互联网科技有限公司
抖集互联网科技技术咨询
河南商务圈互联网科技有限公司
科技互联网专业务虚会材料