Nginx 动态DNS反向代理的几种写法

不言
发布: 2018-05-09 10:37:04
原创
2318人浏览过

这篇文章主要介绍了详解nginx 动态 dns 反向代理的几种写法,详细的介绍了nginx 动态 dns 反向代理的4种方法,非常具有实用价值,需要的朋友可以参考下

这篇文章的更新拖了半个月,真的是感动中国了。

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 脚本来实现,或者是别人的模块,但是考虑到怕鼓捣坏,我还是不乱折腾了,所以没有采取这种方案。

以上就是本篇文章的全部内容了,更多相关内容请关注PHP中文网。

相关推荐:

Nginx反向代理websocket配置实例

以上就是Nginx 动态DNS反向代理的几种写法的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号