====== 阿里云cdn的使用 ====== ===== cdn介绍 ===== cdn也就是内容分发网络,将网站静态资源(图片,css,js等)分发到离用户最近的节点,提高访问速度(减少延迟时间),也分摊了网站80%的请求压力,具体介绍见:[[分享:技术:高并发:高并发处理#cdn加速技术|高并发量网站解决方案]] ===== 阿里云cdn的使用 ===== ==== 添加加速域名 ==== 访问阿里云CDN概览页面,点击CDN域名列表 {{:分享:技术:cdn:1.png?800|}} 点击添加域名 {{:分享:技术:cdn:2.png?800|}} 输入加速域名(必须备案过,可以配置二级域名,我这里就配置cdn.enjoyingshop.com),选择图片小文件加速(可以选择大文件,视频音频流,https加速等),选择源站类型,我选择的是IP(也可以选择域名或者OSS域名),输入IP地址,选择端口,点击下一步 {{:分享:技术:cdn:3.png?800|}} 然后,您的加速域名已经审核通过,域名添加完成,点击立即配置 {{:分享:技术:cdn:4.png?800|}} 可以看到阿里云已经帮我们生成一个CNAME,阿里云CDN的域名 {{:分享:技术:cdn:5.png?800|}} ==== 配置刷新缓存 ==== 点击刷新缓存,点击目录刷新,选择加速域名,输入多个静态文件所在的目录,比如原来访问为http://121.43.104.34/config_center/script/XXXX,配置完成后就可以用http://cdn.enjoyingshop.com/config_center/script/XXXX来访问,点击提交 {{:分享:技术:cdn:6.png?800|}} 点击查看操作记录,可以看到配置成功的内容 {{:分享:技术:cdn:7.png?800|}} 点击CDN域名列表,就可以看到刚配置的CDN域名 {{:分享:技术:cdn:8.png?800|}} ==== 域名解析 ==== 接下来就是在备案的阿里云域名中配置cdn开头的二级域名 {{:分享:技术:cdn:9.png?800|}} 配置CNAME解析,cdn.enjoyingshop.com跳转到cdn.enjoyingshop.com.w.kunlunno.com,点击保存 {{:分享:技术:cdn:10.png?800|}} 1分钟后生效 {{:分享:技术:cdn:11.png?800|}} ==== 测试CDN ==== 到这里,效果就是访问cdn.enjoyingshop.com跳转到cdn.enjoyingshop.com.w.kunlunno.com,cdn.enjoyingshop.com.w.kunlunno.com会去离用户最近的节点取缓存的静态内容,测试如下: 在公司(德邦证券上海市浦电路500号)内网ping C:\Users\Administrator>ping cdn.enjoyingshop.com 正在 Ping cdn.enjoyingshop.com.w.kunlunno.com [222.73.134.109] 具有 32 字节的数 据: 来自 222.73.134.109 的回复: 字节=32 时间=27ms TTL=43 来自 222.73.134.109 的回复: 字节=32 时间=31ms TTL=43 来自 222.73.134.109 的回复: 字节=32 时间=9ms TTL=43 请求超时。 222.73.134.109 的 Ping 统计信息: 数据包: 已发送 = 4,已接收 = 3,丢失 = 1 (25% 丢失), 往返行程的估计时间(以毫秒为单位): 最短 = 9ms,最长 = 31ms,平均 = 22ms 百度上查看该ip[222.73.134.109]来自上海,说明最近的节点在上海,同时也会看到跳转到cdn.enjoyingshop.com.w.kunlunno.com了 {{:分享:技术:cdn:13.png?800|}} 在阿里云(杭州的ECS)上ping root@iZ23goxo66aZ:~# ping cdn.enjoyingshop.com PING cdn.enjoyingshop.com.w.kunlunno.com (124.160.136.182) 56(84) bytes of data. 64 bytes from 124.160.136.182: icmp_seq=1 ttl=46 time=2.23 ms 64 bytes from 124.160.136.182: icmp_seq=2 ttl=46 time=2.10 ms 64 bytes from 124.160.136.182: icmp_seq=3 ttl=46 time=2.17 ms 64 bytes from 124.160.136.182: icmp_seq=4 ttl=46 time=2.37 ms ^C --- cdn.enjoyingshop.com.w.kunlunno.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3003ms rtt min/avg/max/mdev = 2.102/2.223/2.375/0.105 ms 百度上查看该ip[124.160.136.182]来自浙江省嘉兴市,说明最近的节点在浙江省,同时也会看到跳转到cdn.enjoyingshop.com.w.kunlunno.com了 {{:分享:技术:cdn:12.png?800|}} 在阿里云上curl http://cdn.enjoyingshop.com/config_center/scripts/login.js,可以访问到js文件 root@iZ23goxo66aZ:~# curl http://cdn.enjoyingshop.com/config_center/scripts/login.js /** * 按钮监听 */ function keyPress(e){ if( 13 == e.keyCode){ login(); } } //登陆 function login() { var username = document.getElementById("username").value; var password = document.getElementById("password").value; //判非空 if (username == EMPTY) { showAttention("请输入用户名!"); return; } if (password == EMPTY) { showAttention("请输入密码!"); return; } // 判断字符串是否含有非法字符 var result = checkStr(username, SYMBOL_ARRAY_1); if (result["isSuccess"] == false) { showAttention("用户名包含非法字符:" + result["symbol"]); return; } result = checkStr(password, SYMBOL_ARRAY_1); if (result["isSuccess"] == false) { showAttention("密码包含非法字符:" + result["symbol"]); return; } //ajax登陆 var SUCCESS_STR = "success";//成功编码 $.ajax({ type:"post", async:false, url:contextPath + "login.htm", data:"username=" + filterStr(username) + "&password=" + password, success:function (data, textStatus) { if ((SUCCESS_STR == textStatus) && (null != data)) { //判登陆是否成功 if (false == data["isSuccess"]) { showAttention(data["message"]); document.getElementById("password").value = EMPTY; return; } else { //登陆成功 showSuccess(data["message"]); location.href = contextPath + "index.htm"; } } else { showAttention("服务器连接异常,请稍后再试!"); } }, error:function (data, textStatus) { showAttention("服务器连接异常,请稍后再试!"); } }); } 在阿里云上下载logo.jpg root@iZ23goxo66aZ:~# wget http://cdn.enjoyingshop.com/config_center/images/logo.jpg --2016-01-22 09:55:20-- http://cdn.enjoyingshop.com/config_center/images/logo.jpg Resolving cdn.enjoyingshop.com (cdn.enjoyingshop.com)... 124.160.136.182 Connecting to cdn.enjoyingshop.com (cdn.enjoyingshop.com)|124.160.136.182|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 19256 (19K) [image/jpeg] Saving to: ‘logo.jpg’ 100%[==============================================================================================================================>] 19,256 --.-K/s in 0.001s 2016-01-22 09:55:20 (13.3 MB/s) - ‘logo.jpg’ saved [19256/19256] root@iZ23goxo66aZ:~# ls install_log.txt logo.jpg rsa_private_key.pem rsa_private_key(PKCS8格式).pem rsa_public_key.pem root@iZ23goxo66aZ:~# ==== 应用代码验证 ==== 应用freemarker代码中写相对路径,如下: 登录页面

登录页面

访问界面,查看源码如下: 登录页面

登录页面

应用freemarker代码中修改成CDN加速域名前缀后,如下: 登录页面

登录页面

访问界面,查看源码如下: 登录页面

登录页面

界面查看,访问正常! ==== 流量监控 ==== 阿里云上还可以查看通过该CDN的流量监控 {{:分享:技术:cdn:14.png?800|}}