众所周知,海外用户访问国内网站速度都不尽人意,主要原因是地理距离比较远,中国到海外的 Internet 出口带宽有限且中间还隔着"长城防火墙"。那我们有什么办法可以来加速海外用户对国内网站的访问速度么?答案就是 CDN 服务。本文主要就是介绍 CDN 服务提高海外客户访问国内网站的加速原理,海外 CDN 选择,快速配置以及问题释疑三个部分。
加速原理
CDN 全称 Content Delivery Network,中文为内容分发网络,基本思想是将客户要访问的数据尽可能地缓存到离客户最近的网络节点上。
没有 CDN 时,海外客户访问国内网站是这样的,海外客户的每次访问都必须从国内网站服务器读取数据,图片等内容。如下图
(点击放大图像)
有了CDN 后,CDN 网络自动把用户需要访问的网站文件Cache(缓存)到离客户最近的CDN 节点上,这个过程是CDN 网络智能判断和完成的,不需要客户人工介入,如下图:
(点击放大图像)
对上图做一个解释,我们国内的网站经过CDN 服务后会自动(主动/ 被动)同步到全球的CDN 节点,这样当海外客户再访问国内网站时,CDN 系统会智能将客户的访问引导到访问速度最快的CDN 节点上,从而大大加快客户的访问。这个示意不是特别严谨,如果大家希望特别深入的了解CDN 工作机制的话,建议大家可以阅读: http://baike.baidu.com/item/CDN/420951?fr=aladdin 以及其他文档,网上非常多,这里不做详细介绍。
海外 CDN 的选择,
如上图来看,我们可以发现 CDN 有几点特别重要:
- 节点的数量和分布;
- 智能系统的判断和路由;
- 支持 CDN 的内容,比如是否静态网站,图片,视频,流媒体等;
- 价格
针对国内网站出海来看,可以如下三种选择:
(点击放大图像)
如果你只是中小客户的话,我推荐云厂家提供的CDN 服务,配置简单,节点够用,性价比高。目前可以提供云CDN 服务的厂家无外乎微软的AZURE 和亚马逊的AWS,这里仅以微软Azure 为例。微软Azure 是全球云计算供应商领导企业,提供了数百种云计算服务,完全可以满足国内客户开拓海外业务使用。
Azure CDN 配置方式
首先您得有个 Azure 账号,Azure 可以在 www.azure.com 上去申请,绑定信用卡后按使用量后付费。
配置步骤如下:
第一步,配置 CDN 配置文件;
第二步,配置 CDN 终结点;
第三步,修改 DNS 中的 CANME 记录;
第四步,配置自定义域名
第一步,配置 CDN 配置文件:
(点击放大图像)
如上图,先配置一个CDN 配置文件/Profile,资源组和资源组位置随意,三种定价标准如下图:
(点击放大图像)
如果是纯静态网站,推荐大家使用S1 Verizon Standard,如果需要设置CDN 规则,建议使用P1 Premium Verizon,CDN 都是按照流量来收费,但是因为功能强大,高级版显然会比标准版贵一些。配完后应该如下图:
(点击放大图像)
第二步,配置终结点:
(点击放大图像)
说明:
Name 是 CDN 节点名,比如我输入 cdndemo,那么节点名就是 cdndemo.azureedge.net;
Origin type(原点类型),如果是对自有网站加速,选择 Custom origin;
Origin hostname,填写你的源网站的公网 IP 或者主机名,比如 65.52.189.183,不要加 http:// 的前缀。
特别提示(此处有坑):Origin hostname 中文会翻译成原点主机,会让人有点莫名其妙,但实际上是让您填写国内网站公网 IP 或者网站服务器主机名,千万不要填成国内网站域名,那样会在后面 DNS 配置中形成死循环导致网站无法访问。
Origin path 和 Origin host header 可以留空,不用填,协议可以单选 HTTP 或者 HTTP 和 HTTPS 都选择。
创建完成后如下图:
(点击放大图像)
配置完成后,CDN 节点会把 http://65.52.189.183 网站内容 Cache 到终结点即 http://fr-renesola.azureedge.net ,这会花费大约几十分钟的时间。
第三步,在 DNS 系统中增加 CNAME 记录
打开客户的域名管理系统,增加一条 CNAME 记录,主要是将原来的网站 URL 指向到 Azure
CDN 的终结点,即 XXX.azureedge.net。
特别提示(此处有坑):域名系统中一般有 A 记录或者 CNAME 记录,A 记录会优于 CNAME 记录,所以您需要删除 A 记录,主机纪录是您的国内网站地址,记录值是 Azure CDN 的终结点 XXX.azureedge.net. (注意最后有一个点 . ,不要漏了)。这一条 CNAME 的作用就是将原先访问国内网站的 url 导向 Azure CDN 的终结点。相当于在客户和源网站之间增加了一个 CDN 缓存层。至于客户去访问 CDN 网络中的哪一个节点,我们在原理中已经说过,智能 CDN 自动去判断并将客户指向到速度最快的节点。
第四步,设置自定义域名(必须)
在终结点页面中,增加自定义域名(Custom domain),主要是让智能 CDN 系统识别您的国内网站地址。在内部建立国内网站地址和 Azure CDN 终结点的对应关系。
(点击放大图像)
Custom hostname 就是源 URL,即国内网站访问地址。
特别提示(此处有坑):此处必须设置,否则你会发现,你可以访问 XXX.azureedge.net,但是从国内地址无法访问到终结点,会一直显示打不开网站页面。
上面四步做完,您可以完成了一个国内网站在全球的内容分发,您会发现不论您的客户在全球哪一个角落,他都可以快速的打开您的国内网站。
问题释疑
上面步骤只是做了一个简单的演示,在实际使用中,客户往往还会有个性化需求,比如:
问:是否可以只 Cache 图片,视频等静态元素
答:完全可以,选择 P1 Premium Verizon,在规则引擎中设置规则,譬如:
(点击放大图像)
上图仅为示例,aspx、asp、php 等动态页面不做 CDN 缓存,mp4 和 wmv 做 CDN 缓存,这样确保客户访问时可以得到网站动态信息。
问:网站返回页面链接有字符串时如何处理?比如 http://xxxxx?id=1,id=X 不同值代表不同的 Session。
答:可以在 Cache 设置中不缓存查询字符串,不同用户得到不同的访问链接。
(点击放大图像)
评论 1 条评论