详解Nginx 动态 DNS 反向代理的几种写法
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章的更新拖了半个月,真的是感动中国了。Nginx 默认会缓存 DNS,大家都知道,如果做反向代理,其实是访问的目标 ip,所以一旦缓存了目标 ip 就会非常麻烦。茴字的四种写法远近闻名,万万没想
千家信息网最后更新 2025年12月01日详解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安全错误
数据库的锁怎样保障安全
趣味风软件开发ppt模板
网络安全宣传行动
雅马哈贴片机数据库怎么还原
蓝多多数据库原理实验四
数据库用户变更后
小月和阿阳在哪个服务器
SQL数据库不提示
win7ftp服务器配置
入门软件开发
联通服务器哪里有卖
金融软件开发方向招聘信息
什么叫网络安全产业园
北京服务器哪家稳定
地下城手游服务器可以换吗
数据库中的列和行代表什么
技术服务包含软件开发
软件开发的合同履行地
芜湖飞慧网络技术有限公司相亲
软件开发硬件成本核算表
网络安全实践日志
植物大战僵尸2代理服务器修改
杭州安卡网络技术有限公司
数据库系统中的schema
安徽c语言软件开发多少钱
数据库拼接字段输出
惠普 服务器 cpu
txt读取第一行数据库
软件开发 英语 pdf下载
通村村软件开发单位
金蝶服务器维修多少钱