WEB应用

为WordPress开启Nginx缩略图功能,七牛从此陌路

张戈博客曾分享过不少关于七牛云存储的一些经验技巧,对七牛感兴趣或者遇到相关问题的朋友可以看一看以前的相关文章: 七牛&又拍云CDN云存储节省GET次数的小技巧 WordPress简单代码开启七牛CDN及集成七牛缩略图的方法 浅谈网站使用七牛云存储之后的robots.txt该如何设置? Linux/vps本地七天循环备份和七牛远程备份脚本 前段时间,百度云加速自动切换到了3.0,导致我之前的一些规则出现了异常,而且在七牛cname记录上再套云加速缓存这种做法也有部分掉了链子,打开出现90x报错,只好暂时关闭云加速缓存七牛机制,结果七牛d 的数据统计就成这样了: 看来,需要采取措施才能继续享受免费服务了。本想使用之前博友建议的做法:只对需要缩略图的图片指向七牛,其他大图用源站链接,这样应该可以节省不少流量。 于是,对主题代码进行改造,只对缩略图进行七牛地址替换,其他使用源站地址,结果分享效果也不是非常明显,大概能省三分之一到一半的请求流量,但是依然做不到完全免费。 这几天公司组织外出拓展训练,我在和一个开发同事(国添)聊到了nginx时,得知Nginx还有个缩略图功能!运维不怕不会就怕孤陋寡闻,你都不知道有这么回事,也就不存在会不会了,所以不管是做运维,还是做开发,开拓的技术视野是非常重要的,不求深刻记忆,但求方向清晰。 昨天一回到家,立马进入折腾状态,学习Nginx的缩略图和缓存功能,几经折腾终于将这2个实用的功能应用到了我这个WordPress博客,博客图片从此和七牛陌路。 Ps:分享前先简单的说一说实时生成缩略图的好处。肯定有朋友会疑问,WordPress不是已经有缩略图裁剪功能了吗?而且很多主题也加入了自定义尺寸的缩略图裁剪功能,为什么还要多此一举呢?其实,用实时生成缩略图至少有如下2个好处: ①、免去上传图片被裁剪成多种尺寸的困扰(强迫症),既节省了空间且不会杂乱; ②、使用灵活,不管以后换什么主题,需要什么图片尺寸我都能随时拿出最佳尺寸。 下面开始分享具体做法。 一、模块简介 Nginx 缩略图需要用到 image_filter 模块,先贴一些基本参数,备忘之。 image_filter:有如下2种模式: ①、resize:根据尺寸比例缩放图片,比如100*100的图片,而设置是50*25,减小后的图片为25*25。如果你只想设置一个维度,可以用“-”代替。出错时返回415 ②、crop:完全根据尺寸裁剪图片,直接裁剪成跟设置一样大小的图片。比如100*100的图片,而设置是50*25,减小后的图片为50*50,Nginx会选取中间高度25的像素,形成50*25的图片,所以图片会有缺失。如果你只想设置一个维度,可以用“-”代替。出错时返回415 image_filter_buffer:设置图片最大尺寸,超过设定值会返回错误页面 image_filter_jpeg_quality:设置jpeg图片的压缩质量比例 image_filter_transparency:用来禁用gif和palette-based的png图片的透明度,以此来提高图片质量 二、重新编译 因为需要用到 Nginx 的缩略图模块,所以先执行 -V 命令查看 Nginx 是否已经编译了该模块, 如果编译参数中找不到 http_image_filter_module,就需要重新编译 Nginx ,新增编译参数: 我现在用的是淘宝开放的 Tengine ,可以使用动态加载模块功能,如果是原版 Nginx ,可以参考张戈博客之前分享的文章,在原来的基础上加上上述参数重新编译 Nginx 即可: Nginx在线服务状态下平滑升级或新增模块的详细操作记录 三、修改配置 URL形式①:https://zhang.ge/yuantu-${mod}300x300.jpg Ps:${mod}表示缩略图裁剪模式,即resize或crop。 在站点的 Server 模块中新增如下 location 规则: 保存后,执行如下命令行重载 Nginx: 现在可以访问博客图片查看效果了,举例地址形式如下: //res.zgboke.com/wp-content/uploads/2015/05/qiniucdn1.png //res.zgboke.com/wp-content/uploads/2015/05/qiniucdn1-resize400x400.png //res.zgboke.com/wp-content/uploads/2015/05/qiniucdn1-crop400x400.png 很明显的看出resize和crop的区别了吧?和七牛的2中缩略模式一摸一样,下文会有说明。 另外,带尺寸的图片地址其实是不存在的,而是 Nginx 实时生成的,我们可以通过浏览器F12开发模式,在 network 界面查看 header信息就可以看到我们插入的标识: Ps:本来想模仿七牛的缩略图访问方式,在图片后面加上 ?w=300&h=300 请求参数来指定缩略图尺寸,可惜折腾了半天,问题总是在原图和缩略图之间徘徊,只得暂时放弃了。   URL形式①:https://zhang.ge/yuantu.jpg?w=300&h=300 这种形式是我昨天就想弄的,结果折腾半天没成功就暂时洗洗睡了,结果睡觉突然有了灵感,所以一大早就抽空搞定了,下面继续分享: 在站点的 Server 模块中新增如下 location 规则: 保存后,同样是执行命令行重载 Nginx,然后访问图片查看效果,比如分别访问如下2个地址: //res.zgboke.com/wp-content/uploads/2015/05/qiniucdn1.png //res.zgboke.com/wp-content/uploads/2015/05/qiniucdn1.png?width=480 //res.zgboke.com/wp-content/uploads/2015/05/qiniucdn1.png?width=480&height=480 可以发现和七牛一样,只要带上高宽参数就能生成想要的缩略图了,是不是很给力呢? Ps:URL形式①和URL形式②可以同时配置到Nginx当中,不过形式②无法通过传递参数来决定resize还是crop模式,因为我测试发现 image_filter 无法将$1参数(即resize或crop)设置为变量! 不过最近发现使用URL形式①,然后再开启云加速,所有缩略图都会415报错!! 所以,对于URL形式的选择,我个人建议是: A. 如果不用云加速,请使用形式①,因为用参数的缩略图不知道会不会搞晕搜索引擎蜘蛛呢; B. 如果使用云加速,请使用形式②,避免大量415错误! 四、修改代码 既然 Nginx 已经准备就绪了,现在我们要做的就是修改博客的缩略图代码了,这里需要有一定的php折腾基础。因为之前的七牛缩略图就是我自己写代码实现的,所以我很轻松的完成修改,下面贴一下简单代码,仅供参考: 适用于URL形式①: 适用于URL形式②: 当然,这只是文章缩略图,其他位置的缩略图就需要修改主题代码了,由于每个主题都不一样,所以本文就不赘述了,相信这对懂得折腾的人来说应该是小菜一碟了。 五、拓展延伸...
阅读全文
网站建设

七牛&又拍云CDN云存储节省GET次数的小技巧

相信大部分使用七牛的小站用的都是七牛的免费套餐。也就是有各种限制,比如流量、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为例,如下所示:  C. 最后在网站根目录新增static_robots.txt文件,内容如下: 全部完成后,你可以在本地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也不会被泄漏!一旦受到攻击,云盾也扛不住了,那么我们只要理解开启百度的缓存即可实现双重防护! 更新完毕,经供参考!
阅读全文
网站建设

WordPress简单代码开启七牛CDN及集成七牛缩略图的方法

之前在介绍纯静态缓存代码的时候,曾搬出了七牛CDN的代码版,我瞅着应该是从鱼叔的WordPress七牛云存储插件中扒出来的一大段代码,给人很严谨,很专业的赶脚。 一、七牛CDN代码 其实,我只用了寥寥数行代码就搞定了: 使用说明:将上面的代码修改后添加到WordPress主题下的functions.php中即可。 Ps:实际上,如果是结合之前分享PHP缓存代码,仅需以上代码中的第8、10、11行即可实现,合并亦可: 呐呢?你还没用过七牛?那点击注册一个好了! 二、谈图片尺寸 最近遇到一件很惭愧的事情,个人保守估计,很多WordPress站长都没意识到,甚至都没设置过。 先看一个设置界面: 没错,就是WordPress后台的多媒体设置,可以设置一些图片尺寸。实际上,WordPress安装后就默认了多个尺寸,只要你上传图片,他就会将图片自动裁剪出多种尺寸!浪费空间暂且不说,某些擦边球网站图片特多,一个月成千上万图片,你还裁剪一下...可想而知,WordPress网站的效率呈直线下降(目录下的文件数太多会影响PHP性能,感兴趣的可以自行查资料)! 说一下,我以前的做法: 从我用知更鸟主题开始,我就简单研究过这个尺寸设置,知更鸟主题是再带特色图片裁剪功能的: 因此,使用知更鸟之后,我在多媒体中如此设置尺寸: 目的是为了让图片暗箱放大功能得到充分利用,很多博客集成了暗箱,但是他并没有明白暗箱的真谛! 可能喜欢暗箱效果,是因为他很炫,很新奇。实际上,我认为暗箱放大有一个很实用的功能就是加快网页的加载速度!为什么这么说呢? 比如我这样来设置:我写文章的时候,插入的是最宽为300px的中等图片,插入图片后,WordPress会默认给图片一个原始图片的超链接: 那么读者打开文章页面时,浏览器只会加载这个300px的img中图,而用户如果想看清楚图片时,就会点击图片放大,这时候才会加载最清晰的完整图片!要知道,并不是每个读者都会想去看图片的!所以,暗箱放大功能可以变相的加快页面加载速度!因为你在文章中插入的是小体积的中等图,只有点击放大才会加载大图。 有意思的是,很多博客用了暗箱放大,但是文章的img引用的是完整图片,而a标签链接的也是完整图片,那点击放大还有意义么???难道真的只是为了酷炫?那只能说你还没摸透暗箱的实际价值! 当然,这img加载图片的大小得看主题,是300px还是其他,就随个人喜好了! 好了,啰嗦一大堆,下面继续正题! 三、七牛缩略图 前几日,帮用户优化WordPress的时候,偶然试用了一次七牛的缩略图!用完之后,不禁感叹:既然都用七牛CDN了,何必让图片弄得四分五裂,七零八落?真的有必要裁剪图片存放么?我以前也真是愚昧了。 就算在多媒体里面只保留了一个300px大小的中图,但是知更鸟主题的特色图片依然是裁剪成3份,也就是说我上传一张图片,会裁剪为五份!!这也太坑爹了吧? 实际上,七牛的提供了缩略图API的,而且功能实用又强大,完全可以替代WordPress自带的苦逼裁剪功能!在我换成了七牛缩略图之后,对空间多余尺寸图片进行了清理,这些多余尺寸图片,居然占据了空间近三分之一的大小! ①、进入七牛,在数据处理中新建裁剪样式: ②、选择缩放模式,确保图片内容完整: ③、输入想要的缩略图尺寸,比如我一直中意的300px: ④、看到图片水印了么?你还可以顺便弄个水印,又可以阉割一个WordPress插件了: ⑤、最后保存,得到最终API参数: 拿到参数千万别傻眼,有了这个参数却不知道咋用,请继续往下看! 其实只要在七牛图片地址后面加上这个参数,就可以自动输出带水印缩略图了,比如本文有张图片是: http://static.zhang.ge/wp-content/uploads/2015/01/qiniucdn07.png 那么,带上缩略和水印参数就是: http://static.zhang.ge/wp-content/uploads/2015/01/qiniucdn07.png?imageView2/2/w/300/h/300/q/75|watermark/1/image/aHR0cDovL3N0YXRpYy56aGFuZ2dlLm5ldC9nby9pbWFnZXMvd2F0ZXJtYXJrLnBuZw==/dissolve/90/gravity/SouthEast/dx/8/dy/8 访问看看就知道了!非常简单! Ps:实际使用发现,七牛带参数的水印功能和暗箱放大是有冲突的,也就是原图也使用七牛的水印参数的话,暗箱放大功能就会失效。看来,水印功能只好作罢!如果图片是新窗口打开形式,那么就可以用这个水印参数了! 得到参数了该如何应用到网站呢? 这里就懒得写代码了,直接扒鱼叔的七牛插件中的缩略图代码,代码有点长就不贴出了。 ①、下载代码 下载水煮鱼的WordPress七牛云存储插件,解压后里面的wpjam-thumbnail.php文件即为缩略图代码。  ②、集成功能 将wpjam-thumbnail.php这个文件上传到主题目录,然后编辑主题目录下的functions.php,在第一个<?php后面加上如下代码即可集成七牛缩略图功能: ③、应用到文章 如上文所说,我们为了进一步优化页面加载速度,文章中的img图片通常引用的是缩略图,所以将如下代码添加到主题的functions.php中即可完成替换: Ps:以上代码并为将博客地址替换为七牛地址,需要结合前文上文七牛CDN代码使用,当然可以进一步DIY。 ④、强迫症适用(有点费解,如果看不懂请忽略) 当然,你可以会有我这样的困惑:用了这个七牛缩略图之后,我想删除空间里面的多余尺寸图片,那老文章中的图片不就404了吗?确实,如果删除了多余的尺寸图片,那么文章在数据库中存储的图片路径却没变,那图片还真会404! 别急,咱们完善一下,将如下代码替换到上面的代码中的/* 预留位置 */即可: 上述代码原理就是将老文章中大小为300px的缩略图替换为完整大小图片。 ⑤、应用到主题 到这里就有点小麻烦了,因为每个主题的情况都不一样。我只能粗略的说一下张戈博客的实施情况! 知更鸟主题一共需要3种缩略图尺寸: 那我就需要找到这三个图片对应的php代码,然后替换为七牛缩略图地址即可,这里就要用到鱼叔的代码了! 先简单说下鱼叔的七牛缩略图函数的用法: 当你的主题引入了鱼叔的代码后,就得到了一个缩略图函数: 相关参数说明如下: 参数 说明 $szie 设置缩略图的大小,可以是一个数组,比如array(150,150),也可以是字符串,比'thumbnail',字符串只能为’thumbnail’, ‘medium’, ‘large’ 这几个关键字,分别对应 WordPress 后台 > 设置 > 多媒体中的设置大小。 $crop 设置是否裁剪缩略图,1为裁剪,如果为0,则只是按照最大边进行缩放,不进行裁剪。 $class 设置日志缩略图的 class,默认为"wp-post-image"。 ps:更多参数请查看:《七牛镜像云存储WordPress插件使用指南》 知更鸟主题首页和分类页面的小缩略图(140x100)用到的是主题目录下的thumbnail.php文件,编辑此文件,如下即可完成首页和分类模块中小缩略图的替换: 保存后,刷新首页,再去查看小缩略图的地址,就已经变成我们想要的了: Ps:这一步是我最不想写的,因为每个主题都不一样,所以没有通用性,也很难说清楚!喜欢折腾的朋友就参考上述代码自行搞定吧!实在想搞,有搞不定的那就购买张戈博客的有偿服务吧!我来帮你搞! ⑥、强迫症善后 做完所有集成和替换之后,高潮就来了!现在我们可以禁止主题和WordPress的自动裁剪功能了: 如果你懂得前因后果,也会折腾,还是强迫症一枚,那就再深入一点,将空间多余尺寸图片都删除(VPS下一条命令即可搞定,我就不啰嗦了,如果不会折腾的就别跟进了,到时候一堆图片404就别找我麻烦了)。 四、插入图片? 当全部办妥之后,你会发现2个小问题: a. 后台写文章插入图片,只能插入完整尺寸; b. 如果直接插入完整尺寸,那么前台文章显示的缩略图就惨不忍睹! 为啥会这样?如果你在后台插入的是完整图片,那么经过七牛缩略图处理之后,就变成了小尺寸的图片,而你文章插入完整图片时,定义的尺寸也是完整尺寸,那尼玛前台肯定拉伸成TM都不认识的样子了。 解决办法: ①、很简单,咱们在写文章插入图片的时候,还是选择插入完整图片: ②、点击刚刚插入的图片,弹出悬浮工具条,点击编辑按钮: ③、选择自定义尺寸,并在下方的宽度里面填写你要的缩略图大小: ④、更新后,自然就恢复了以前设置的那种大小了: 本来不知道写什么,结果按下键盘就收不住,洋洋洒洒写了这么一大篇幅!总之,今天写的东西我自己都感觉很难表达清楚,感兴趣、接受能力强的朋友的自己凑合看看吧!
阅读全文
网站建设

浅谈网站使用七牛云存储之后的robots.txt该如何设置?

最近因为稳定性考虑,我的2个网站都脱离了360网站卫士的阵营,准备单飞。昨天在模拟CC攻击自己网站的时候,发现十来个并发就扛不住了! 分析了一下原因,在没开启360CDN缓存的情况下,10个并发攻击,硬件配置肯定是没问题的,那么无法访问的原因很明显就是带宽不够! 现在我的服务器带宽已经升级到了2M,也就是峰值250kb/s的样子。试想一下,打开一个页面打开需要100kb的速度才感觉顺畅,如果10个并发,那么每个页面只能分到25kb/s,肯定非常卡!产生10个并发时,2M带宽会被占满,其他客户端根本无法访问,跟挂了没啥区别! 既然不用360CDN了,那么要改善这种带宽不够的情况就得请大名鼎鼎的七牛云存储出马了! 在wp-super-cache插件的CDN设置中填写七牛空间地址,重新启用了这个好久没用过的免费CDN加速(话说我一直把七牛当远程备份用,不知道七牛的产品经理知道了会不会跳出来打我。。。) 启用七牛之后,发现了2个问题: ①、WordPress的Ajax评论无法使用了; ②、纠结存在七牛的静态图片是否要禁用搜索引擎的抓取和收录。 对于问题①: 很好解决,如下修改comments-ajax.js即可: 对于问题②: 这有是一个老生常谈的问题,但是每次都会比较纠结!但比较肯定的是,对于七牛这种类似镜像站的域名,还是禁止抓取比较好!否则就会导致收录重复。 张戈博客备案之后,就将static.zhang.ge这个域名cname到了七牛的空间域名,所以网站的静态文件也就可以用这个二级域名来存放。 七牛的空间,创建时默认会有一个robots,禁止所有搜索引擎抓取,内容如下: 直接使用这个robots,对SEO肯定是没问题的,避免了搜索引擎抓取到重复的内容。但是,有个小缺憾,使用这个robots之后,以前百度和360搜索结果中的缩略图都会被K掉。因为你的图片被禁止抓取了!!! 个人觉得搜索结果中有特色图片还是不错的,也许会吸引用户点击! 所以,我对放置在七牛空间的robots如下改造(推荐使用): 意思很简单,就是允许百度和360抓取文章中的图片,其他搜索引擎一律禁止抓取! 这样做的好处是: ①、在避免搜索引擎收录七牛重复内容的同时,允许其收录文章的特色图片和内容配图; ②、禁止抓取可以极大的节省七牛空间的GET次数,因为搜索引擎的每一次抓取都将产生一次GET,而七牛免费空间的GET次数是有限制的,我们完全没必要白白浪费。 用百度robots工具检测下: 没啥问题,直接上传到七牛空间,访问http://static.zhang.ge/robots.txt 即可看到效果。 今天,在群里谈论到这个问题的时候,龙三兄弟居然说可以在主域名写robots去禁用二级域名的抓取,着实震惊到我了,谁说可以这样写的? 好了,robots的具体规则本文就不罗嗦了,只提2点: 最新补充:第①条说法已被推翻,关于robots优先级,请看最新文章:https://zhang.ge/4781.html ①、在robots.txt文件中,前面规则的优先级要高于后面的规则,而且至少要有一条Disallow记录,否则就没有起到禁止抓取的作用了,比如 这种写法将允许抓取/wp-content/uploads目录,而不允许抓取/wp-content/目录。 若反过来写: 这种写法就是错误的,后面一条的Allow将不能生效,因为前面的规则优先级要高些,这么说应该懂了吧? ②、路径【不加斜杠】的规则比【加斜杠】的规则能匹配的范围更大,举例: 这种写法,确实是禁止了二级目录bbs,但是却没有禁止 /bbs,即未禁止这个二级目录的默认页(比如:WordPress默认的页面地址就是不带斜杠的),如果你想禁止目录下的所有内容,就不要带斜杠: 对于第②条说法,可以查看百度官方robots的格式说明中的关于Disallow的说明(原文地址): Disallow: 该项的值用于描述不希望被访问的一组URL,这个值可以是一条完整的路径,也可以是路径的非空前缀,以Disallow项的值开头的URL不会被 robot访问。 例如 "Disallow:/help" 禁止robot访问 /help.html、/helpabc.html、/help /index.html,而"Disallow:/help/" 则允许robot访问/help.html、/helpabc.html,不能访问 /help/index.html。"Disallow:"说明允许robot访问该网站的所有url,在"/robots.txt"文件中,至少要有一 条Disallow记录。如果"/robots.txt"不存在或者为空文件,则对于所有的搜索引擎robot,该网站都是开放的。 继续回到带宽瓶颈这个话题,了解网页结构的都知道,占据页面体积的主要是静态文件,比如JS、CSS和图片等。其他字符文字都非常小! 那么,在带宽不足又没开启360一类的CDN加速的时候,利用七牛云存储给网站做简单的动态分离处理的效果是非常不错的!因为最占带宽的静态文件已经交给七牛去处理了,你网站也就输出一些文字字符啥的,就极大的缓解了服务器网络小水管的尴尬! 所以,七牛云存储的主要功能就是分担来自带宽的压力,而不是其他!当网站服务器带宽不够用,又不想用啥云加速或网站卫士的时候,你就可以速度去启用七牛云存储了! 好了,关于七牛云存储和robots设置就说这么多了,发现没用360CDN,现在的速度也是杠杠的!
阅读全文
脚本编程

VPS服务器备份网站到七牛云存储的shell脚本(第二版)

上一篇文章发布了备份网站到七牛的第一版,这次应回复要求先公布同步原理及shell源码,让喜欢折腾的人有力可使。其实,这个备份工具的原理非常简单,就是借用了官方的同步工具,配合简单的shell语句即可完成。 一、备份原理 简介 qrsync 是一个根据七牛云存储API实现的简易命令行辅助上传同步工具,支持断点续上传,增量同步,它可将用户本地的某目录的文件同步到七牛云存储中,同步或上传几百GB甚至上TB的文件毫无鸭梨。 注意:被同步的文件名和路径必须是utf8编码,非utf8的文件名和路径将会同步失败 下载 qrsync 命令行辅助同步工具下载地址: 用法 先建立一个配置文件(JSON格式),比如叫conf.json,内容如下:   简单说明: ①、src表示需要同步的本地目录,比如网站文件打包存放路径:/www/web_backup,或是你网站文件路径:/home/domain/zhang.ge/public_html ②、2个Key:access_key和secret_key,进入七牛账号设置界面可以获取到。 ③、bucket表示存放备份文件的七牛空间,建议新建一个。 ④、key_prefix 表示存放在七牛空间的上一级目录名称,比如key_prefix=backup/ 则表示备份文件将存放到目标空间下的backup文件夹中。参数留空则表示存放到改空间的根目录。 ⑤、threshold表示文件分块上传的块大小,单位为字节(Byte),可根据你本地的网络带宽来确定。 ⑥、deletable  是否同步删除七牛云上的文件,通常设置0,当本地文件删除时并不删除存储在七牛的对应文件。如果你想删除本地文件的同时也删除存储在存储在七牛的文件,则设置为1。 Ps:以上即为此工具必备的参数,更多参数请至七牛官方文档查看。   在建立完 conf.json 配置文件后,就可以运行 qrsync 程序进行同步。 Unix/Linux/MacOS 系统可以用如下命令行: Windows 系统用户在 菜单栏选择 输入 cmd 回车即可打开 DOS 命令行窗口。 假设你的 qrsync.exe 和配置文件都存放在 d:/tools/,则如下执行: 需要注意的是,qrsync 是增量同步的,如果你上一次同步成功后修改了部分文件,那么再次运行 qrsync 时只同步新增的和被修改的文件。当然,如果上一次同步过程出错了,也可以重新运行 qrsync 程序继续同步。   以上即为各种系统将文件同步到七牛云存储的原理方法,我们换个想法:当我们同步的是网站打包的文件及数据库,那不就变相的实现了将网站备份到七牛云存储了吗?! 二、第二版工具shell源码(未完待续...) 仔细看了备份原理,相信有shell基础的朋友很容易就可以制作一个自动备份的工具了。 下面公布下张戈写的第二版工具源码: 相比第一版: ①、增加了数据库和网站文件分离机制,可分开设定各自的备份间隔,比如数据库我需要每天备份一次,而网站文件我打算7天备份一次; ②、数据库备份文件先压缩后上传,减小文件体积,节省空间流量。 工具文件结构: 初始化脚本源码: 备份及同步脚本源码: Ps:由于七牛最近屏蔽了空间内容查看,导致第二版备份工具未进行测试,所以张戈就不发下载地址了,回头测试无误后再来补充下。 写在最后:从前文可以看出,七牛官方提供的同步工具支持多种系统,比如Windows,有兴趣的朋友可以参考此文,为Windows系统的VPS服务器写一个批处理脚本,来实现网站备份!当然,有此需求的朋友也可以留言,并提供Windows系统的VPS主机,只要有空,张戈可无偿添加此批处理脚本。
阅读全文
脚本编程

VPS服务器备份网站文件和数据库到七牛云存储的shell脚本工具

一直想写一篇关于网站本地备份和远程备份的文章,相关草稿其实在6.12号就写好了,一直因为没有测试环境,没发布出来。时间久了,也就忘了,回头找个时间测试下再发布好了。 今天分享的工具也和备份有关,而且是远程备份,这个工具算是我的无聊之作吧,虽说WordPress已经有wp2pcs这类备份插件了。相信折腾VPS的站长会喜欢我这个工具的,因为它不会常驻占用资源。 一、工具档案 工具名称:Backup_to_QiNiu_By_ZhangGe_Ver1.0.sh 工具语言:Shell,json 工作环境:Linux 功能描述:通过Linux系统计划任务,将网站文件及数据库备份到七牛的免费云存储空间 额外说明: ①、工具默认使用zip打包,如果系统未安装zip,将使用tar打包成tar.gz格式; ②、为了避免中文乱码,工具中全部采用洋文,张戈水平有限,可能存在蹩脚语法(下文有中文对照); ③、使用原生交互风格,未做界面菜单式优化,反正初始化也就用一次。 二、使用说明 ①、下载工具: 进入VPS系统,执行以下命令下载工具:     ②、运行工具,并根据工具提示输入信息:   过程如下: 下面贴上测试截图: 执行完成后,可以复制crontab的命令行,手动执行试试效果: 备份成功后,七牛对应的空间将可以看到刚刚备份的文件: 以上过程为初始化,只需执行一次即可,当然重复执行也没关系哈,只是覆盖了设置而已。 三、后期维护 做完初始化设置之后,如果想改变备份间隔或者备份目标之类的,你可以编辑系统计划任务,来重新定义: 以上第4行则为备份的命令行,以下为后期修改说明: 前5列表示执行频率,具体为 分  时 日 月 周,工具默认是定义在【日】这一列,代码中的 */7 表示每7天备份一次; /www/web/default:需要备份的网站文件路径 test2、123456:数据库用户名和密码 /www/backup_temp:备份文件存放地址,每次备份的文件将保留至下一次备份才会被删除,差不多算本地备份了。 mytest :数据库名称 Ps:当然你也可以仿照第4行,根据实际需要插入多条任务计划。 四、工具展望 此工具也只是张戈的无聊蛋疼作品,VPS用户实在不多,而且都有自己的一套备份系统。发这个工具的目的也只是为了给备份网站多一条出路。 视受欢迎程度,下一版工具将加入 ①、网站文件/数据库分开备份的自定义机制; ②、做成菜单式,将项目分开设置,包括后期维护的交互式菜单,提高易用性 五、附录:七牛云存储 七牛云存储的介绍:https://zhang.ge/1126.html 七牛云存储推广注册链接:https://portal.qiniu.com/signup?code=3lgiiufrno1ua 就说这么多,需要张戈帮忙部署备份的VPS用户,请留言即可!张戈可提供无偿服务!
阅读全文