网站建设

浅谈网站使用七牛云存储之后的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主机,只要有空,张戈可无偿添加此批处理脚本。
阅读全文