我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

如您所见,典型的过程是:

(1)客户端请求dns-发起域名解析;

(2)DNS——返回域名对应的外网IP(1.2.3.4);

(3)客户端通过外网IP(1.2.3.4)访问反向代理;

(4)反向代理通过内网IP(192.168.xx)将请求分发给web-;

(5)通过网络处理请求;

其中,第一步,将域名转换为IP的过程发生在应用系统之外,通过DNS实现。

那么,在架构设计的时候,DNS除了用来做域名解析之外,还能用来做什么呢?

1. 用户就近访问

DNS 可以为用户提供其所需资源的本地访问:

(1)电信用户想要访问某个服务器资源;

(2)浏览器向DNS-发起域名解析请求;

(3)DNS—将访问者识别为电信用户;

(4)DNS——向访问者返回电信机房的nginx外网IP地址;

(5)游客在附近参观;

根据用户IP返回最近的服务器IP就叫做“智能DNS”,最常用于CDN、多机房多活。

2.反向代理水平扩展

典型的互联网架构中,可以通过增加web-来扩展web层的性能,但是反向代理nginx依然是整个系统的唯一入口,如果系统吞吐量超出了nginx的性能极限,难以扩展的话,就需要dns-来配合水平扩展。

具体做法是:在DNS-针对同一个域名,可以配置多个nginx外网IP,每次进行DNS解析请求时,轮询返回不同的IP,这样就可以实现nginx的水平扩展,这种方法就叫做“DNS轮询”。

3. Web负载平衡

由于“dns轮询”可以将同一域名的流量均匀分布到不同的nginx上,因此它也可以用于web负载均衡:

(1)从架构中移除nginx层;

(2)直接将多个web-的内网IP地址改为外网IP地址;

(3)在DNS-中,轮询并解析域名对应的外网IP;

通过DNS实现负载均衡有哪些优点和缺点?

优势:

(1)使用第三方DNS实现,不改变服务器架构;

(2)少一层网络请求;

不足的:

(1)DNS只具有解析功能,无法保证对应外网IP的可用性。nginx作为反向代理时,它与web-之间存在保活检测机制,当web-宕机时,可以自动迁移流量。

(2)当需要扩容web时,通过DNS需要较长时间才能生效,而nginx是服务器可以完全掌控的部分,因此扩容web更加实时、便捷;

由于以上两个原因,架构上一般都采用高可用的反向代理。

总结

在架构设计上,DNS除了用于域名解析之外,还有其他的用途:

(1)智能DNS,根据用户IP地址访问最近的服务器;

(2)DNS轮询,反向代理层的水平扩展;

(3)使用DNS实现负载均衡;

希望大家都能从中受益。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/5052.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线