0%

网站多区域部署的解析方案

背景与目的

作为网站管理员,如果管理的网站发展到了一定的规模,多区域部署是会面临的一个问题。常见部署方式为中国区域部署一套,海外部署一套。

为什么网站需要多个部署?

  1. 安全合规:不同国家和地区可能有不同的数据保护法规和隐私政策。多区域部署可以帮助企业遵守当地法律法规,例如,某些法规要
  2. 个性化:多区域部署可以帮助企业更好地满足不同地区用户的需求,提供定制化的内容和服务。
  3. 灾备:如果一个区域出现故障,可以快速切换到另外一个区域的服务
  4. 提升访问速度:将用户流量导入到较近的区域有助于提升响应的速度。

如果服务部署了多个地区,那么如何让用户能够访问到我们希望他们去访问的区域呢?

解决方案

多个域名解决方案

这种情况比较常见,且比较直观,通过浏览器的URL就能区分。拿三星官网来举例。
输入 https://www.samsung.com
image
最终三星的服务器将我的页面跳到香港繁体中文的首页。地址栏显示: https://www.samsung.com/hk/, 可以看到服务器的ip位于香港🇭🇰(因为我在深圳,所以可能海外最近的节点是在香港)。

这个时候如果切换到中文:
image

可以看到最终响应域名的是 https://www.samsung.com.cn/, 而且左下角可以看到服务器是来自于中国🇨🇳。

这就是一种典型的多域名部署方案。

同域名解决方案

多个域名的情况下,管理员需要去投入更多维护成本。有的网站会采用同个域名但是对于不同地区的用户,访问到不同部署服务。

以前有一个很经典的面试题:浏览器输入URL之后回车,会发生什么, 其中最重要的一个环节就是DNS解析。

DNS是什么

DNS(域名系统,Domain Name System)是互联网的一项核心服务,它负责将人类可读的域名(如 www.example.com)转换为机器可读的IP地址(如 192.0.2.1)。DNS使用分布式数据库和层次化的设计,允许用户通过域名访问网站,而不需要记住复杂的数字IP地址。
当用户在浏览器中输入一个网址时,浏览器会向DNS服务器发送查询请求。DNS服务器会查找与该域名对应的IP地址,并将其返回给浏览器,然后浏览器使用这个IP地址与目标服务器建立连接,从而加载用户请求的网页。

基于地理位置的DNS解析

对于同个域名,在中国地区的用户,我们可以让DNS解析到中国服务,而海外的用户,我们可以解析到海外服务。假设我们的管理域名如下

域名 说明
www.example.com 希望用户统一访问的域名
www.cn-example.com 希望中国地区用户访问到的服务
www.global-example.com 希望非中国地区用户访问到的服务

现在云厂商很多都提供了基于地理位置的DNS解析,我们拿AWS route53服务来举例。

image

可以看到,对于 www.example.com 这个域名,我们新建两条了DNS解析记录。注意,这里我们选择的route policy为基于地理位置的解析: 记CN的用户,解析到www.cn-example.com, 而其他用户则解析到www.global-example.com
注:上面我们使用了cname record type,如果服务没有域名,我们可以用DNS A record type

如此,对于用户来说,只需要知道一个域名即可,而对于网站管理员来说,不同地域的用户,则会访问到不同的部署服务。

Welcome to my other publishing channels