关羽单刀赴会关羽单刀赴会两路军入川,将荆州交于copy关羽,并嘱之“北拒曹操,东和孙权”。张飞从小路出发,义释老将严颜,一路顺利入川与百刘备会合。诸葛亮到达后,定计擒获川中大将张任。此时西凉度马超割据凉州失败后,投于张鲁帐下,因唇亡齿寒之说,张问鲁派马超、马岱解西川之围。葭萌关以逸待劳的张飞,三次大战马超未分胜败,诸葛亮定计,李恢说降了马超。答西川终为刘备攻占。[1]
最佳答案又是复制粘贴的。
简单地说,现在抄CDN分两种:把www的解析直接换成CNAME
自己加一个二级域名,CNAME绑定到CDN提供的地址上
百度、腾讯云、阿里云等CDN使用第一种方式,七牛和又拍属于第二种。袭
第一种方式比较简单,站长无需对网站做修改,CDN直接会把百网页和静态资源缓存起来。由于www的解析直接更换成CDN的CNAME,因此不需要更改网址就能起到加速效果。缺度点是,有些动态页面(PHP、JSP、ASPX等等)可能会被CDN误判为静态网页而被缓存起来,不适合需要用户登录的网站。
第二种方式呢,需要站长亲自把所有的图片、CSS、JS等的网址替换成二级域名知的网址。只有该二级域名下的文件会被缓存。优点是没有第一种的缺点,缺点是,如果把静态页面也放到了二级域名下,会对SEO产生一定影响道。
CDN一般需要用到域名的智能解析功能。
就是有的DNS服务器,在查复询时能够根据用户的IP,返回给这个用户的不同的服务器IP地址。不同地制区的用户能够就近访问靠近他的服务器,实现加速的功能。
一般需要提供CDN的公司自己提供的域zd名,所以需要把你的域名做一个别名指向到他们的域名上。
不会影响SEO
首先我们从网站发展的三个阶段来分析关键词:
一,首先我们的网站在建设之初需要选取一个关键词来建设。
二,当我们的网站关键词出现排名之后,为什么别人的站点比我们的排名要高。高质量站点的竞争对手还有一些什么关键词。
三,当我们多个关键词有了排名之后,做站的目的就出现了,哪个关键词可以给我们带来更多的流量,更多的转化率,这些好的,转化率高关键词自然需要我们的更多关注。毕竟站长做站是以赚钱为目的的。
如果还需要细分的话,大致可以分为十一点:
1、网站还开始建设前,需要先选取关键词,并以此扩展。常用的方法就是在百度搜索框中输入扩展关键词,查看相关页面,以判断。
2、做了关键词以后,分析对手关键词。
3、目标关键词应该建设在首页。
4、2级目标关键词,在2级域名或2级栏目做2级目标关键词。
5、内容页里面做,长尾关键词胜在一个做量,以量来带动目标关键词。就像金字塔一样,慢慢的从下而上的堆积,把目标关键词堆到顶端。
6、目标关键词围绕主关键词来做。
7、自己网站关键词,选择上需要花非常大的心思。
8、如果要做关键词,先百度看关键词有多少篇页面。
9、分析权重容量可以做多少关键词。
10、分析竞争对手:前面3名的需要去分析它的规模、收录量、内容页。一般长尾关键词都是存在于内容页中,而且我们需要看这些文章为原创还是为原创,甚至是转载。如果是后两者那么这些个长尾关键词的权重不会太高。
近段时间将使用七牛云存储来存放用户上传的数据,客户端通过七牛的js-sdk与七牛交互,服务端C#实现了七牛相关的接口。在这过程中多多少少遇到点问题,在这里总结一下。原文:使用七牛云存储的一些经验总结
599错误处理
如果在与七牛的交互中出现http状态码为599的错误,一句话,不要犹豫,直接联系七牛技术支持。七牛的文档也在很多地方提到这个错误,都是指导大家去联系技术支持的。笔者是在分块上传后的mkfile调用时出现的,联系技术支持后,说是调整了一下,让我重试。后来就好了…
分块上传无法从回调中获得文件的原始名
简单上传采用的是multipart/form-data方式上传,七牛服务端能够从请求中获得文件的原始名,并支持使用魔法变量$(fname)回调业务服务器。不过当使用分片上传的时候情况有所不同。分片上传需要在最后调用mkfile,来将分片拼接起来。但是,mkfile接口支持普通的请求,并没有附带文件名,所以七牛也就无法获得文件名,此时从$(fname)中是取不到文件名的。这个问题我也向七牛技术支持提交了问题,得到的结果是使用自定义变量mkfile支持将自定义变量放在url中,回调的时候自定义变量可以传递给业务服务器。
慎用图片预处理
七牛云支持很多对文件的预处理,其中最常用的应该就是图片预处理了,可以对图片的大小做变换等。七牛推荐使用GET的方式直接指定图片处理结果的url,像这样:
http://qiniuphotos.qiniudn.com/gogopher.jpg?imageView2/1/w/200/h/200
处理后的图片会自动缓存,用户不用关心,只要每次访问都用这个url就行了。然而,笔者在开始的时候,为了保持与其他文件形式统一的处理方法,对图片使用了预处理(因为视频什么的只能预处理),即在token中指定了预处理。此时问题出现了,从后台的日志看到,图片的预处理通知回调竟然比正常的上传成功回调还要快!这就导致预处理结果到来之前,我的业务服务器的数据库中还没有这个图片,无法保存预处理结果了。所以推荐还是使用url直接处理,对图片要慎用预处理
视频文件无法快进播放
通常用户在观看视频的时候都会根据自己的喜好,快速将视频定位到指定的时间播放。实现这个功能,需要视频本身有关键帧信息、服务端需要支持关键帧播放请求,在这篇文章中有详细讨论。
但是笔者发现,在使用七牛云转化后的视频,这样做是无效的。于是咨询技术支持,得到的答案是:转化的文件是具有关键帧的,但七牛使用CDN加速,所以关键帧请求需要CDN的支持,如果想要用这个功能的话,需要单独联系销售或技术支持在CDN上配置,而且时间比较长。笔者联系了销售和技术支持,说是帮我配置,但到现在还没有搞定,因为最近这个也不是特别重要,所以也没有跟下去。
Callback校验
这是可选的一个步骤。由于七牛云会在上传完成之后回调业务服务器,所以理论上说业务服务器需要校验这个回调的合理性。原理在七牛的文档中有,需要用到HMAC-SHA1签名函数。但是七牛的sdk中没有提供直接的方式来做校验,在研读文档、多次失败和查看sdk源码后,笔者终于校验成功了。关键的分歧在于,文档中的这句话:
获取明文:data=Request.URL.Path+”\n”+Request.Body
这里的Request.URL.Path是否包含Querystring?答案是包含的!下面是笔者C#服务端的校验代码,使用的是ASP.NETWebApi:
“`C#
byte[]key=System.Text.Encoding.UTF8.GetBytes(Qiniu.Conf.Config.SECRET_KEY);
using(HMACSHA1hmac=newHMACSHA1(key))
{
t.Wait();
stringrawbody=t.Result;
log.DebugFormat(“request’srawbody:{0}”,rawbody);
stringtext=filterContext.Request.RequestUri.PathAndQuery+”\n”+rawbody;
log.DebugFormat(“PathAndQuery+\n+rawbody:{0}”,text);
byte[]digest=hmac.ComputeHash(System.Text.Encoding.UTF8.GetBytes(text));
stringcomputed=Qiniu.Util.Base64URLSafe.Encode(digest);
log.DebugFormat(“Computedhashafterbase64:{0}”,computed);
IEnumerableauths;
if(filterContext.Request.Headers.TryGetValues(“Authorization”,outauths)&&auths.Count()==1)
{
stringauth=auths.First();
log.DebugFormat(“Authorizationinheader:{0}”,auth);
if(auth.StartsWith(“QBox”))
{
vararr=auth.Substring(5).Split(‘:’);
if(arr.Length==2)
{
if(arr[1]!=computed)
{
log.ErrorFormat(“Authorizationfailed.Sinceauthfromheader{0}notequalscomputed{1}”,arr[1],computed);
}
else
{
log.Debug(“Authorizationsuccess.”);
//onlypasscanbereturn
return;
}
}
else
{
log.Error(“CallbackAuthorization’sformatisinvalid,cannotfindtwopartaftersplitby’:’.”);
}
}
else
{
log.Error(“CallbackAuthorization’sformatisinvalid,missingleading’QBox’.”);
}
}
else
{
log.Error(“Therequestfromqiniucallbackismissing’Authorization'”);
}
filterContext.Response=filterContext.Request.CreateResponse(System.Net.HttpStatusCode.Forbidden);
}
如下几个注意点:
-明文应当是请求的path+querystring部分和rawbody
-对于.NET而言,明文和key都需要用UTF-8编码变换成字节才能进行签名。而php中的hash_hmac函数完全不用这么复杂…
-签名的结果再用base64的url安全的方式编码,再与请求的http头部的Authorization比较
建议官方在文档中加入一些相对底层一些的编程语言的实现,php太高端了…
##js-sdk实现略显粗糙##
在使用过程中,我发现[官方的js-sdk](http://github.com/qiniupd/qiniu-js-sdk/)有几个我觉得不好的地方:
**不能为每个文件获取UpToken**
试想,在文件上传过程中有获取UpToken是必须的,而且UpToken又需要包含预处理指令,不同的文件显然需要不同的UpToken,而在js-sdk的实现中,只在初始化这个上传组件对象的时候请求一次上传凭证,后面所有的上传都需要使用这个预先得到的UpToken:
“`javascript
uploader.bind(‘Init’,function(up,params){
getUpToken();
});
于是我修改了这部分,在BeforeUpload事件中请求UpToken。建议官方考虑更改这个地方
只能实现分片上传,无法断点续传
js-sdk的实现在分片上传的实现上,是很简单的,不仅没有使用分片,而是分块(一块4m,调用mkblk),而且没有实现持久化ctx,或者类似的回调或接口。4m分块这个问题还可以不追究,没有实现持久化ctx就说不过去了,不持久化怎么实现断点续传撒?!就算不实现,也应该给出回调的入口,让调用者来实现持久化,而我实在无法找到这个’空子’可钻,只能直接在源码上改动了。
没有复用流行类库的东西
这个其实算不上问题,因为作为一个不依赖jquery的sdk,当然不能使用jquery现成的东西,比如ajax。不依赖jquery就算了,依赖plupload是几个意思嘛,还依赖全局对象…于是最后,我干脆自己将sdk改成了Backbone的类,将不要的东西统统去掉,使用jquery和underscore简化代码了…
关于你的这个问题我也做过相应的分析,七牛用的人太多了,现在只是适合放图片了,css和js不是很推荐,下面是我的文章:
WordPress用了也是半年之多了,慢慢的从一个基于FrontPage的小小白变为小白了,不再有当年分分钟做一个网页供全世界疯狂浏览的傻愿望了,更是懂得了网站运维的推销与公关工作。
七牛云储存CDN加速,在我的起始阶段就知道了CDN这东西,七牛,又提供免费的cdn加速,外加静态资源的储存.当初为感谢七牛,还来了一篇若兮为尘开始把图片托管至七牛云储存了,记得还迎来了七牛工作人员在微博上的评论。
话说当时七牛真的很是给力,10G的空间,全国CDN节点,速度要比我的空间好的多,想想都是看着免费的那么个东西也是醉了。外加水煮鱼在WordPress上的插件,缩略图API的接口,CSS,js等静态资源的存放,在国内绝对是很好的免费空间。记得当时网上还有在七牛搭建免费博客的教程,速度比在Github上搭建的速度要快很多很多,因为闲麻烦也就一直没有搞那个东西。
七牛在我心目中的印象一直很是不错,尽管出现过外链短暂失效,遭到全国封查的打击。也都在各大博客上看见footer里面写着“本博客由七牛云储存加速”的字样。当然作为穷屌丝的我也是自然不能放过这样的好机会,尤其是图片,放在七牛,只是引进url,博客搬家自然是省不少事,不用下载那么大的图片文件了。
CDN一直是个神秘的话题,搜索引擎对他也没有采取比较正式的声明。存在一个和你一模一样的站,想想也会有点担心,会不会分散我的权重?人家的站比较大,百度会不会反过来认为我的站是抄袭的?在纠结了一个月之后,看见了七牛的官方文档,说和百度还是有合作的,不会影响SEO优化问题,并且在那个镜像站点上进行了robots的封禁,从统计结果上来看是不会造成什么不好的影响的。
于是,七牛CDN加速也一直开始用了,自然是用水煮鱼的插件,速度也很是可观。偶然的一天,博友说我的站点有点慢,尤其适用百度站长工具测速,显示的分数比较低,可是我也没觉到有什么太大的问题。于是看了一下加载文件的速度,赫然发现一直信任的七牛竟然拖了我的后退,css,js的加载简直比我的空间要慢很多很多,关了七牛的CDN加速,测试了一下,果然进步了不少。你懂的,七牛必定被我拒绝,现在只有图片是放在七牛上的,其他的文件都是放在本地的,速度作为一个香港空间来说,就哈尔滨联通和教育网的访问速度还行,360全国节点测试的结果还是比较可观的。
在此,感谢七牛陪我的那些岁月,感觉七牛的那些无偿服务,感谢七牛对我的种种帮助。一个公司需要成长,七牛也是,一直免费是做不下去的,超过10G才收费肯定会引来不少像我一样的免费用户,甚至遭到滥用。
七牛的公司需要转型,也许就像阿里的淘宝像天猫的转型,当然口水站肯定是免不了的,为不一样的用户提供不一样的服务质量也许是个不错的选择,不过难就难在用户的口碑上!
七牛,加油!虽然不用你的CDN加速,不过作为一个创业公司还是力挺你!期待你有一天帝国梦的实现。