逍遥乐博客全新改版,5年来首次大改,我做了哪些改动

转眼间,逍遥乐博客从开始到现在已经10年了。逍遥乐博客,起于大学里,想要转载记录以及分享学习心得,而搭建的网站。初始尝试过各种程序,最终定下来一直用的wordpress。从最初的折腾,到后面的得心应手。

从5年前到现在,逍遥乐博客界面都一直是一个样子,没有做过任何改动。不是不想,而是压根没时间了。10年时间,逍遥乐已经不再是那个大学里的青葱少年,为了工作和家庭,对于博客的关注少之又少。以前几乎每天都会看看,每隔几天就会编写或者分享一篇文章。

现在可能一周才会看看状态,数月才会更新一篇文章。以至于博客的内容少见更新,甚至因为wordpress,导致的问题也没有去解决。

最近实在看不下去了,历时一个月,每天下班回家,每周周末。只要一有空就写博客主题代码。为了在这次中做好,我改了N多个版本。Git 版本记录,2万余行代码改动。当然了,逍遥乐也是非常的懒的。前端风格,博客的wordpress主题 最初基板是基于模板兔的Qie主题(点击可前往模板兔),这是个收费主题,感兴趣的同学可以去购买。

这是目前的首页效果,后续还将继续优化:

逍遥乐博客全新改版,5年来首次大改,我做了哪些改动

逍遥乐博客的主题虽然是基于Qie主题,但是现在已经完全不是Qie了。整个主题80%以上的代码重写,我起了个新名字叫Xywk。由于模板兔的Qie主题,是主打简约,因此功能相当简陋。我在他的基础上进行了大量的增删改。

由于Xywk主题,我是准备为逍遥乐博客自己使用。因此,为了最高的性能和体验。我删除了原主题所有的后台配置,全部采用前台硬编码。主题文件大小由最初的2M多,缩减到现在的500K(包括静态资源js、css、img)。

功能上,全面改造了会员个人中心页面,增加了我的评论,支持社交账号绑定解绑,账号邮箱的修改。增加了独立用户注册、登录、找回密码功能。增加了单独的VIP会员界面。修补了原主题几十项bug,优化了功能体验和视觉体验。自适应代码也做了大量修改优化。针对最新版本的worpdress和PHP,优化了大量的代码和逻辑。一切为了性能,一切为了安全性,一切为了稳定。

网站安全性全面,所有的用户注册、登录、找回密码等全部需要验证码。网站本身升级为HTTPS,网站环境LNMP的PHP版本和Nginx版本均升级为最新的稳定版本,当然代码也为了适配他们做了大量修改。

现在逍遥乐在保证功能完善,交互效果的同时。基本上网页也是即时秒开。当然由于本站用的谷歌广告,会在一定程度拖慢整体速度,但是并不影响首屏显示。

性能方面,为了实现低负载,靠效率,几乎秒开的网页体验,我从三个方面入手:

一、服务器:

1、首先对于访问量比较大的网站不建议用虚拟空间。最好是使用云服务器,自己搭环境。就像逍遥乐用的阿里云

2、开启 Memcached 。它是高性能的分布式内存对象系统, 既能提高访问的速度,同时还减低了数据库的负载

3、PHP 开启 OPCache:把经过编译后的 PHP 代码缓存到共享内存中,并在用户访问的时候直接调用从而起到高效的加速作用。

4、MySQL 设置 MySQL Query Cache,可以保存保存查询结果,同样的查询不再从数据库检索,对速度有很大的提升。

5、还有更多其他环境配置上的小优化

二、

对于wordpres系统,我用不到的功能全部禁用。总计几十项优化和禁用,减轻性能消耗,加快访问速度。这个后续我会写文整理一下,发出来。

三、主题和插件优化:

1、重点采用缩略图新方案:由于升级https,CDN流量单独收费。而CDN我能用到的主要是缩略图这一块。CDN能帮我自动剪裁缩略图。其实还有wordpress自带的缩略图,以其生成一堆碎片化图片,严重影响性能和增加磁盘消耗,特别是我们这种10年 的老博客。因此worpress自带的缩略图直接禁用和放弃。还有一种就是timthumb.php动态缩略图,存在着严重的性能问题和安全性问题,逍遥乐很早以前就用过,果断放弃。

逍遥乐这里重点感谢@晨星的新方案,他给我了很大的启示。我的方案基本都和他一样,每篇文章只生成一张缩略图,生成静态缩略图文件,分文件夹存储优化性能,仅在第一次访问时生成后缩略图,没有性能问题,后边都是访问静态图片文件。没有缩略图和图片的文章也会随机缩略图。这是一个安全,高效的缩略图方案。光这个缩略图,我写了一个礼拜才搞定。有了它,我直接抛弃了CDN。当然了此方案后续也还可以继续使用cdn,但是无奈没银子,先不用cdn了。毕竟只是个博客,只是追求性能,但是不一定要它。

2、减少主题数据库查询和PHP动态处理,能静态的尽量静态,减少wordpress钩子的使用。

3、卸载大量插件,仅保留几个涉及安全和支付的插件。其他能用代码代替的尽量用代码代替。

4、清理数据库表,重灾区meta数据,还有这么多年各种插件积累的wp-option表配置。

以上基本就是我这次的主要改动,当然由于时间有限,还要上班,细节就不一一写了,挑了一些重点来写。

细节部分,我会在后边文章中一一给大家列出来。以供大家参考!

未来一段时间,我会继续对博客进行优化,中间可能会有一些访问问题。如果大家发现了问题或者建议,请给个留言反馈谢谢!