区域智能线路负载

曾经有人问我这样一个问题,同样的域名(比如:www.myfreax.com),欧洲一台Nginx服务器,中国一台Nginx服务器,怎么样使来自欧洲的客户端访问的是欧洲的服务器,中国则访问中国的,在应用层解决实在想不出来怎么解决,但可以网络层可以解决这个问题,即通过DNS来判断不同地区来源解释成指定地区的IP地址来解决此问题

基本原理

regional-smart-line-load 当客户端发起请求时,首先第一步就是由DNS服务把网址解释www主机的IP地址,DNS服务器把网址解释成IP地址后返回给客户端,客户端再根据解释后的IP向www服务器请求资源,从图中可以看到DNS根据不同地区返回不同地区www服务器的IP地址,这得益于EDNS(edns-client-subnet)机制,这种机制是由Google提出,现在外国的DNS提供商都支持这个,国内死贵云也支持,只需在DNS服务器上或者到DNS提供商设置一下即可

设置

针对不同线路来源设置不同的A记录或者Cname记录即可

其实这个和DNS负载均衡类似,DNS负载均衡是随机分发IP,而上面是针对来源分发IP

Thank

感谢胖子

你的欣赏是我最大的动力

Yanxiong Huang

My name is Yanxiong Huang. graduated from Nanyang middle school.Love Linux,familiar with Node.js,Docker,Serverless... and more Web technology.Contact Me:QQ 31356617;Email:huangaynxiong2013@gmail.com

guangzhou,china http://www.myfreax.com

乐在分享