详解Nginx 动态 DNS 反向代理的几种写法
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章的更新拖了半个月,真的是感动中国了。Nginx 默认会缓存 DNS,大家都知道,如果做反向代理,其实是访问的目标 ip,所以一旦缓存了目标 ip 就会非常麻烦。茴字的四种写法远近闻名,万万没想
千家信息网最后更新 2025年01月23日详解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安全错误
数据库的锁怎样保障安全
社忧网络技术股份有限公司
网络安全约谈要求
网络安全法人力资源行业解读
网络安全人物动作
旺星人软件开发
怎么使用access数据库数据
达梦数据库如何去除字段中空格
数据库动态更新方法周期
服务器没开安全组
游客服务器英文
数据库运维工程师6
互联网万兴科技
机关单位网络安全重要性
网络安全对国家的好处
昌吉软件开发优缺点
王牌战争建房子服务器设置
镇海安卓软件开发设计
土地确权确大四至数据库字段
计算机网络技术职业素养目标
前沿数据库技术有哪些常用
明日之后不同的渠道服务器
公司网络安全问题实例视频
江西标准软件开发厂家
小型软件开发框架
运维管理软件开发费用
银行工控系统网络安全
福建新一代网络技术经验丰富
备份ORALCE 数据库
网络安全与信息化部门怎么样
数据库工龄代码怎么写