相信大部分使用七牛的小站用的都是七牛的免费套餐。也就是有各种限制,比如流量、GET 数量等:
对于这 4 个限制指标,估计大部分站长最拮据的就是第 2、4 个限制了。
不过,对于第 2 个限制,我们倒是可以通过推荐他人注册七牛来获得最高 40G 的永久下载流量(貌似有超过的)。比如,我的 2 个七牛帐号就都已经是永久 40G 流量了。
随着网站的流量越来越大,而且网站的所有静态资源都丢到了七牛,结果就出现这种情况:
一个月 300 多 W 次 GET 了。虽然七牛的 GET 非常便宜(¥0.01 /万次请求),一百万也就是 1 快钱。但是作为屌丝站长,本来就想用用免费的套餐,结果一个月也好几块,总是觉得别扭是不?
下面就分享 2 个节省 GET 次数的方法,GET 数目太大的朋友可以参考下。
一、调节缓存寿命
这是七牛新出的一个设置:maxAge
通过配置七牛的空间属性中 maxAge, 达到配置 HTTP header 中 Cache-Control:max-age 的目的。通俗来说就是控制缓存刷新的时间,那当然设置越长,越能节省 GET 抓取数目了:想都不用想,设置为最长的2147483647 秒:
二、开启防盗链
这个是必须开启的,省的出现不但文章被人采集,而且资源都被人直接盗用的尴尬局面!直接开启白名单,将你手头的域名加入即可,避免出现大水冲了龙王庙的情况,并且把空 referer 给禁止下:
三、针对搜索引擎
这个方法比较新颖,应该是我最先想到的!
原理比较简单:在 dnspod 解析七牛静态域名(前提是已自定义了七牛静态域名,比如我的 static.zhang.ge)时,额外新增一条解析搜索引擎线路的 A 记录,指向我们的源服务器 IP,默认线路则 cname 到七牛的 CDN。这样一来,一大波搜索引擎的抓取就分配到了你的源服务器,而非七牛!当然也就起到了节省 GET 次数的效果了!
简单的说下步骤:
A. 对七牛自定义域名新增搜索引擎线路解析,指向源服务器:
B. 在源服务器新增自定义域名的监听模块,以 Nginx 为例,如下所示:
server {
server_name static.zhang.ge;
index 404.html index.php index.html;
root /home/web/zhang.ge; #和 zhang.ge 文件路径保持一致
location ~ /.*\.(php|php5)?$ {
deny all;
}
location / {
if (-f $request_filename) { #如果存在请求文件则直接展示;
break;
}
return 404; #其他则返回 404,避免搜索引擎收录重复内容。
}
location ~ (robots.txt) { #针对这个静态域名额外写一个 robots.txt
rewrite /robots.txt /static_robots.txt last;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js)$
{
expires 30d;
}
}
C. 最后在网站根目录新增 static_robots.txt 文件,内容如下:
# robots.txt for statice domain
User-agent: Baiduspider
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Disallow: /
User-agent: 360Spider
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Disallow: /
User-agent: Baiduspider-image
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Disallow: /
User-agent: 360Spider-Image
Allow: /wp-content/uploads/*.jpg$
Allow: /wp-content/uploads/*.png$
Disallow: /
User-agent: *
Disallow: /
全部完成后,你可以在本地 hosts 将七牛自定义静态域名的解析指向你的源服务器 IP,模拟搜索引擎抓取,验证本次设置效果。
I. 首页、分类及文章均为 404:
II. 图片可以正常访问:
III. 不一样的 robots:
如此一来,不但可以节约搜索引擎抓取的 GET 次数,还意外的做好了镜像站的 SEO 工作,因为非静态资源全部返回 404,就算你搜索引擎不遵守 robots 也没辙!让你瞎收录!
好了,本文就介绍到这,理论上来说同样适用于又拍云,感兴趣的童鞋可以去自行测试看看。看不懂文章的童鞋就别瞎评论了!做你该做的去吧!
七牛免费帐号注册==>传送门
四、终级大招
以下内容为 2015 年 3 月 4 号最新更新:
最近网站的流量砰的一下就上来了,一天 3000 多 IP,结果问题来了,七牛的免费套餐爆表了:
GET 次数每天 10W+:
下载流量每天 5、6GB:
很明显,这样下去免费套餐根本扛不住,迟早要爆表收费!
解决办法很简单,在七牛的基础上套一层百度云加速或 360CDN 好了。
我在百度云加速 3.0 的 DNS 解析如下所示:
其中大众线路解析到阿里云云盾的 WAF 地址,搜索引擎则解析到我网站的真实 IP,然后七牛的 cname 记录则套上百度云加速的缓存(图中的 static 记录),以此来解决七牛流量和 GET 爆表的问题!
实际上这样设置,七牛的加速也就没了意义,因为都缓存到了百度 CDN 节点了!这样做我主要是为了用到七牛的缩略图功能!!
这样设置还有一个好处,平常大众线路是直接回源,也就是指向云盾的 WAF 节点,因为就算不用百度的缓存,真实 IP 也不会被泄漏!一旦受到攻击,云盾也扛不住了,那么我们只要理解开启百度的缓存即可实现双重防护!
更新完毕,经供参考!