1.1.1 MDS配置CDN
1. 背景
在App上线后,随着用户量的增加,由于离线包或者升级包等文件的下载,会导致行方的带宽压力很大,严重的话把带宽打满。因此我们一般建议将MDS接入CDN。配置了CDN后,手机APP的文件下载会先访问CDN,CDN首次被访问时,会从源站拉取获取资源包,然后缓存到CDN中。只有超过CDN设置的过期时间,或者手工重新预热CDN时,CDN才会重新到客户机房重新获取资源包。利用CDN的缓存能力,可以很大程度上减轻对客户带宽的压力。
2. CDN配置过程介绍
如图1-1所示,以xx客户使用阿里云CDN为例,mpaas.xxxx.com是机房暴露的公网域名,cdnmpaas.xxxx.com是CDN上创建的加速域名,整体操作如下。
图1‑1 CDN配置流程
1)前置准备
(1)申请开通CDN,并分配一个CDN加速域名;
(2)准备行内的SSL证书,需要将SSL证书的私钥配置到CDN厂商的管控台。
2)创建CDN域名
创建CDN加速域名,设置回源域名和过期时间,上传HTTPS证书。以下以阿里云CDN为例。在阿里云上创建一个加速域名,在客户原来的域名基础上会加上前缀和后缀,形成加速域名,如图1-2所示。
图1‑2 CDN域名申请页面
创建成功后,在域名管理中能看到加速的域名后面有一个CNAME,对应的是阿里云CDN为该加速域名提供一个互联网能认识到的有效地址。这个CNAME要提供给客户的网络工程师,因为需要在域名的DNS服务器上,配置MDS下载加速域名cdnmpaas.xxxx.com 解析为CNAME地址,如图1-3所示。
图1‑3 CDN配置页面
其中针对几个关键指标说明如下:
(1)源站:源站决定了回源时请求到的具体IP地址,这个IP地址是DNS解析mds对外域名后确认。
(2)回源HOST:回源HOST决定了回源请求访问到该IP地址上的具体站点。比如一个IP的服务器上,其实发布了几个web服务端系统,那么光靠IP是不能区分是哪个系统的,需要加一个标志(host)来表示回源到这台服务器的哪个系统上。
(3) 设置缓存过期时间和加速路径"/mcube",如图1-4所示。
图1‑4 CDN配置缓存地址页面
2)上传https证书
上传证书,可选择自定义证书,如果客户的证书是泛域名证书,考虑安全性,长期运行建议为mds加速域名申请一个单域名证书,如图1-5所示。
图1‑5 CDN配置https证书页面
或者cdn厂商提供的免费证书,如阿里云的免费1年证书。免费证书通常只用于个人用途,如图1-6所示。
图1‑6 CDN配置https个人证书页面
3)DNS新增解析MDS的加速域名
DNS服务控制台由各域名服务商提供,下面以在阿里云购买的域名为例仅做参考。获取上一步创建加速域名后自动生成的CNAME(有的CDN服务商可能提供的是IP)添加一个解析记录,类型为CNAME,如图1-7所示。
图1‑7 设置CNAME
配置完成后,会看到2条记录,一条是mpaas.xxxx.com指向机房的公网IP,一条是cdnmpaas指向cdn提供的cname地址。如图1-8所示。
图1‑8 CDN配置域名解析
4)MDS设置下载路径为cdn的加速域名
访问mappcenter服务的控制台 http://mappcenter.内网域名/center#/admin/manage,左侧导航栏选择通用配置,顶部下拉框选择mcube,如图1-9所示。
图1‑9 配置MDS下载地址
修改mdsWebOuterDomainName,修改为前面创建的cdn加速域名(不用加端口),注意不是CNAME地址,如图1-10所示。
图1‑10 推送MDS下载地址
5)mAppcenter上传资源包发布
重新上传应用包、离线包、热修复包,上传界面设置为新的版本号。新上传的文件,MDS会自动结合上面已经配置的cdn加速域名,重新生成一次下载路径。当手机APP来下载时,就会去新配置的CDN下载。
6)验证CDN生效
通过客户侧查看重新上传的离线包是否新的CDN地址,如果已经更新,说明变更成功。
3. 注意事项
(1)配置CDN后,新版本上传的资源包会走CDN缓存。旧版本已上传的资源包还保存原下载路径,即直接访问MDSWeb。
(2)建议在业务低峰期进行切换,并在线下做好完备的测试验证,如果有问题及时进行回滚。