域名解析是客户端访问系统的第一步 。在架构设计中,DNS Server除了解析域名,还能干点什么呢?又有哪些“挖坑”的用法需要避免呢?
典型的互联网架构中,我们通过Nginx的反向代理来做负载均衡 。客户端通过域名访问时,DNS Server将域名解析到nginx服务器的IP,客户端先访问nginx,nginx再将请求分发到下层的web-server 。
文章插图
我们可以通过增加web-server来扩充web层的性能,但nginx仍是整个系统的唯一入口 。如果系统吞吐超过nginx的单机性能极限,此时就需要通过DNS轮询来水平扩展nginx了 。
文章插图
具体做法是:增加多台nginx,对于同一个域名配置多个ip,每个ip指向一台nginx 。每次DNS解析,会轮询返回不同的ip,这样就能实现nginx的水平扩展了 。
既然DNS轮询可以将请求分派到不同的ip上,那可不可以去掉nginx,直接用DNS轮询来做负载均衡呢?
通过DNS来实施负载均衡虽然能减少一层网络请求,但也有问题 。
首先,DNS只具备解析功能,并不能保证ip对应的服务器可用 。而nginx做反向代理时,与web-server之间有保活探测机制,当web-server挂掉时,能够自动迁移流量;
其次,当web-server需要扩容时,虽然可以通过增加域名解析的ip来实现扩容,但解析的生效时间长,而nginx则是完全自己可控,扩容更实时、更方便 。
因为上面两个原因,所以架构上,一般都使用nginx来做高可用反向代理 。
【千万别用DNS轮询来作负载均衡!因为有这两个大坑..】
推荐阅读
- 李自成在北京抄了多少银子,李自成七千万两白银
- 浏览器将主机名转换成服务器 IP 地址
- 超市|超市里的连卷袋 千万别再这么用了!危害你想象不到
- 乐视|《甄嬛传》每年还为乐视赚上千万元?官方回应:我是大冤种
- 如何用DNS跳过激活锁?
- 买二手iPhone,这两个锁千万要注意
- 女人的4大秘密千万不要对男人说
- Linux 环境下 DNS 域名解析服务
- 微波炉加热时间览表,千万别用微波炉加热
- 家里千万不要养仙人掌,千万不要养在家里