24 点半不定期折腾总结(日期:20180427)

2018年4月28日 0 条评论 130 次阅读 0 人点赞

距离上一次发的更新说明还没有多久,博主我又忍不住手痒,对博客进行了又一番的折腾,到目前为止,基本算是完成了,所以就写篇文章再来进行一次总结吧~

这次对博客改动或者优化的东西还是挺多的,主要就是速度优化和 SSL 证书相关的小改动两方面,下面我就简单的说明下吧。

首先上次说明最后,我说未来可能更新的一些东西:

  • PHP 和 Nginx 版本更新
  • 主题更新
  • 剔除目前正在使用的部分插件
  • 缩短服务器响应时间

前面两项目前我还没有做,PHP 和 Nginx 是因为懒······嗯,因为目前还没找到让我迫切想更新的理由,新出来的 TLS 1.3 可能算是一个,不过这个目前好像还没有稳定下来,而且要支持可能不仅仅是要更新 Nginx,OpenSSL 可能也是要更新的,有点麻烦,就暂时不打算支持 TLS 1.3 了,等稳定下来再做打算吧!至于主题更新的话,这个需要作者的努力,我个人也就稍微自己改了点东西,算不得是什么更新,所以就不提了。

至于后面两项,是我在这段时间里主要做的,具体有如下几个方面的努力或者说是小改动:

  • 更换 DNS 解析服务商

原本我用的是 Namesilo 自带的 DNS 解析服务,用起来其实还是可以的,但是存在着一定的不足之处,比如解析生效时间不够及时,支持记录类型比较少,不支持分区解析,全球响应延迟不够快(算是影响到服务器打开速度的一环吧)。还有一些小的方面,总之因为多方面的考虑,我换了一个 DNS 解析服务商。如果大家有兴趣查询的话,应该也能发现我现在换到 NS1 了,使用体验还不错,无论是国外还是国内响应延迟都算不错了,而且功能也丰富了很多,好评。

  • 开启图片延迟加载功能

不知道上次有没有说过这个?延迟加载的话,我觉得对于我的博客还是挺重要的,可以说是直接让我博客网页的打开速度快了一截。延迟加载简单的说就是把博客里的图片先用一张非常小非常小的图片代替,你在打开网页的时候,不在你屏幕里显示的图片此时实际上都还只是这么一张小图而已,只有当你屏幕滑到了相应位置时,这张图片才会真正的加载显示出来。这种做法的好处就是真正的图片不会在你打开网页的那一瞬间一次性下载加载完成,而是在你屏幕定位到的时候才开始加载,最开始下载的都是一张默认的小图,也就是说,第一时间请求网页的大小变小了很多,有什么用自然就不言而喻了——缩短了你下载并解析网页所需要的时间,实际体验就是打开速度快了。

关于这个延迟加载,我博客里有个转载的大和号战舰的介绍文,里面的图片非常多,在没启用延迟加载之前,要完全打开的话那个等待时间可以说是非常痛苦的了,启用了之后,速度快了一大截。

  • 使用页面缓存和数据库缓存

使用这两种缓存技术,一是减小服务器的处理压力,二也是加快了页面载入速度。

  • 移除部分插件

前面的说明里我也说到过,想把猜谜语游戏使用的插件给删了,这会我算是真正的这么做了,因为我发现那个 HTML5 的代码用起来还挺不错的,不比插件的实现方式差,因此基于插件越少越好的原则,我还是把插件给删了,以后的猜谜语游戏就用纯代码来实现吧。

当然,移除的插件也不止这一个,除了这个不太记得了,就略过不说了。

  • 开启静态文件和 Gravatar 头像的 CDN 支持

博客的静态文件和 Gravatar 的头像现在都交给 CDN 来处理了,这么做的好处有很多,我主要的考虑,一是减少服务器的压力,二也是加速世界各地访问网站的速度。静态文件用自己服务器的话,Vultr 大家都懂的,国外不清楚,国内速度不算很好,我又不想对国内进行特别优化(使用国内 CDN)或者直接放在墙内,所以我决定只基于博客的海外访问者和翻墙偶然路过本站的朋友们进行一番优化,这样子选用了海外的 CDN 服务商后,其实国内的朋友也或多或少能加快点速度,只不过提升没国内 CDN 那么明显就是了,但我测试也比只用自己的服务器好了很多。

Gravatar 头像的话,算是 WordPress 都不能少了的东西,WordPress 原本默认的几个服务器被墙认证了,要么打不开要么很慢,严重影响到了本博客的打开速度,而 WordPress 大概是为了照顾国内的用户,专门弄了个 cn.gravatar.com 给国内用户用,本博客使用的 Dobby 主题默认也是把其它的请求域名给全换成了这个,国内打开博客的话速度应该会好很多。但是,这个域名正如它的 cn 二级域一样,是对中国用户优化了的,对于非中国用户比如翻墙来到本博客的用户,是加速网站访问速度还是减速网站访问速度,未知,而且未来也说不定还有墙的风险。所以我考虑了一番后,找了个缓存 Gravatar 头像的 CDN 服务,替换了这个 cn.gravatar.com,这样不仅在国内有良好支持,国外也不差。

  • 服务器开启 Brotli 压缩

现代服务器默认情况下,应该都有使用 Gzip 压缩来传输一些文件,压缩的好处自然是让客户端(浏览器)打开网页时下载内容更快完成了,这自然能让网站快一点。不过据说现在有个在同等情况下能比 Gzip 压缩出来的内容还要小的压缩方式 Brotli 压缩,出于好奇和些许的期待,我给服务器加上了这个模块,使用之后压缩出来的文件确实小了一些。而且我的 CDN 服务商也支持这个 Brotli 压缩,所以我也不用担心兼容之类的问题,赞~

  • 为 24 点半的加上了 ECC SSL 证书的支持

这个好像对速度的影响不大?据说是有着更高的安全性和更快的速度支持。加上这个额外的证书本来只是因为想用上 Certificate Transparency 这个涉及到安全问题的功能,而原证书可能需要一番小折腾才能实现,所以就顺手签了个通配符证书。然后在选择证书类型的时候考虑到前面说的那两个可能的 buff 加成,并出于对新事物的好奇,签了个 ECC 证书用在博客上试试效果。当然,因为 Nginx 是支持双证书的,所以即使这个证书在一些旧设备上没法使用,也是可以用原来的证书的。对应的,因为要配合 ECC 证书的使用,服务器的加密算法优先级也稍稍改了一下,支持的客户端会优先使用 ECC 证书,不支持的使用原来的 RSA 证书。

  • DNS 解析记录中额外添加 CAA 记录

这个算是为了安全的考虑,CAA 证书的作用是告诉 SSL 签证机构,本域名限定只允许个别的签证机构签发证书。也就是说可以一定程度上防止别有用心之人给你的域名签证书干坏事之类的。不过我觉得这个只能说是君子协议,因为不遵守这个的签证机构不是没有,只不过因为违规风险很大,大部分还是愿意遵守这个的。不管怎么说,加上不是坏事,反正工作量也小,就顺手加了。

 

基本上目前的改动就这么多了,现在大家打开博客的速度,不说秒开,至少比原本没改动之前好了很多吧?秒开是不可能的,这辈子都不可能的,我也没想做到这种极致效果,只要能让访客感觉不慢,我就很满足了。其实我这次折腾还没做完全,我原本是计划再弄一下 OCSP Stapling 和 HPKP 这两个和 SSL 安全有关的东西的,不过看了下别人的教程,似乎有点麻烦,而且不是特别必要,暂时就放弃了,后者比较简单,未来说不定还是会加上。

好了,这次总结算是说完了,心里算是松了口气。未来的计划可能是把主题稍微改动一下以配合自己使用,并小小的升级下服务器配置,以提高服务器性能和用更新的 MariaDB 之类的吧,需要氪更多的金,只有计划还不打算真这么做,毕竟现在的服务器也是很够我用的了。

12点半

Hello world!

文章评论(0)