Nginx按天切分日志并自动备份到七牛云存储

2017-10-18

上篇文章中我曾讲到,数天前我将本站从阿里云的虚拟主机迁移到了ECS云主机上。在迁移过程中,我在安装Nginx服务器的时候遇到了一个非常典型的问题——如何将Nginx服务器的日志按日期进行切分?Nginx服务器的日志默认是存放在access_log.log和error.log两个文件中的。如果不对这两个文件进行切分处理,长此以往,这两个文件将变得非常巨大,以致影响数据的存储和分析,难以使用。所以,对这两个文件进行切分,尤其是按时间进行切分,还是非常有必要的。

其次,我国相关法律规定,“互联网信息服务提供者、互联网接入服务提供者应当记录日志信息,保存12个月”。出于网站的合规性考虑,我们需要将网站服务日志做较长时间的保留。可是ECS的自带磁盘无论是出于存储代价还是服务可靠性的考虑,都不适合这种持久性保存的应用场景,最好的处理方式还是将这些日志存放到专业的云存储服务中。鉴于七牛提供了10GB的免费存储空间和较为完善的命令行工具,而阿里云的OSS云存储多多少少仍需要付些费用,所以我最终还是决定采用七牛家的服务来做这件事情。那么,怎样才能将Nginx的日志增量备份到七牛云存储呢?

网络上关于Nginx日志按时间切分的文章很多,Google一搜一大把;而且,七牛也为Linux操作系统提供了现成的QSHELL上传工具。所以,只要对网络上的现有脚本稍加改造,便可以实现我们需要的功能。下面我简单介绍一下我是如何实现这两个功能的。 阅读全文 »

网站迁移到阿里云ECS,同时升级到HTTP/2,顺便拔拔草

2017-10-13

HTTP/2

从2012年以来,我就一直在用万网(阿里云)旗下的产品(虚拟主机)。可以肯定的说,他们家的东西,无论速度还是稳定性,都还是很不错的。可惜随着HTTP/2在网络上的广泛应用,这款虚拟主机越来越不能满足需求了——尽管拥有独立IP,却依然不能使用HTTPS访问;而且,很多的优技术也因为虚拟主机的局限性而不能得到应用(作为一个追求极致的Geeker,这点绝不能忍)。所以将网站迁移到云主机上,便早早地被我提到了日程上面。

但是因为本站已经有将近两年的时间没有更新了,所以我也一直摇摆不定——为了一个常年不更新的网站上个一年好几百块的云主机,究竟值不值得。于是在左右摇摆之中,上云主机这件事便被拖了下来。

上个月恰逢阿里云ECS搞活动,800RMB可以买3年,折合一年266.67,简直是白菜价!所以我便毫不犹豫地入手了一枚。而后就是老套的那些步骤,搭服务器、建数据库、数据迁移、站点优化什么的,基本毫无压力。可是吧,服务器尽管已经搭好了,稳定性却还没有经过验证。所以这几周以来,我便让服务器空转了一段时间,并持续观察服务器的性能和稳定性。根据监控日志显示,这台服务器的在线率和负载情况还是很不错的,所以思虑再三,我最终决定把网站迁移过来。当然,随着网站负载的增大,服务能否稳定如初,还是有待进一步观察的。 阅读全文 »