写在开始

在建了这个博客之后我就在这里想如何优化一下加载速度和加载体积。 不过也不知道到底实际上有没有特别大的区别

HTTP和TLS优化

这个其实没啥好说的, 开上HTTPS, 开上HTTP2, 开上QUIC, 想给服务器开gzip之类的压缩来着结果发现Caddy不支持反代的压缩。所以就这样了, 不过开了HTTP2之后就不会很容易阻塞在某一个请求上了, 也还算是比较好吧。

图片优化

图床本地化

首先我把我所有的图片都拉到了服务器本地, 目的其实挺简单的, 因为我之前的图床啥样都有, 当然基本都是谷歌相册倒是。 然后我的反代图床不能很简单的利用在这个博客上, 而且现在我也确实感觉走Cloudflare的速度堪忧了, 另一个可能只是我个人感觉问题, 就是少一个域名解析网页加载效率会高。

然后我借助友人C大佬的php脚本就成功的把我所有的图片都拉到本地加上本地的链接了, 不过我觉得这个还不是很满意, 所以我又加了一些别的东西。

自动图片转码

这就是我说的别的东西了, 就是把我的所有的图片自动转码成一些更先进的图片编码, 比如WebP。 不过使用前提就是要把图片的域名换成我的另一个域名, 都在一个服务器上的两个域名, 应该问题不大吧?

所以我就因此写了一个ASP.NET Core的服务端, 专门用来转码图片用, 然后按照客户端环境自动使用合适的格式, 比如在IOS和macOS上的Safari上自动使用只有苹果能用的 Jpeg 2000 , 在Chrome和新版Firefox上使用WebP, 唯独没照顾的就是IE用户了, 感觉应该不会特别多的IE用户了吧?所以我就没有把IE用户的图片格式换成 Jpeg XR。

这样子整体感觉应该会好点了吧?可能能节约一点用户流量(实际上我服务器也没几张图片, 之前全部拖下来所有的图片一共没有100MiB)。

Gravatar头像加载优化

上面都把图片优化了, 所以我一起做一个Gravatar的优化, 把这个头像也放进我的迫真CDN里, 通过ASP.NET Core实现的反代加缓存加上面的自动图片转码来给这一堆头像加速, 这个的加速效果比那些图片啥的效果好多了。 毕竟之前是走一个速度不是很快的secure.gravatar.com来提供Gravatar头像的, 现在都在我的博客服务器上, 效率应当高很多了。 实际体验也快很多了。

服务端缓存

原本我还想给博客加一个Redis的缓存来着, 但是我加了之后发现, 效率没高多少吧, 用户体验下降了好多, 一个问题就是评论很麻烦了, 得等着缓存刷新才能显示评论, 另一个就是我发现我的主题可以在不同的客户端语言下显示不同的语言的文字, 所以我的博客被一个歪果仁看了一下, 就有一部分页面上的按钮变成了英文, 也是一个很神奇的东西, 所以整体我就放弃掉了。 毕竟我博客的访问量日IP才一百多, 而且总感觉大多数都是机器人。 不止如此我服务器的并发量之前用siege测试的时候能到一秒钟70多个并发, 所以在出现性能瓶颈之前这个就不考虑了。

写在最后

整体这个折腾还是很舒适的, 就是图片现在还没有啥比较好的方式传到自动转码的那一遍, 说白了缺个插件自动改链接, 其他的起码给人感觉心情舒畅, 不过实际上有没有好效果就不知道了, 就是好像遇到图片比较多的博客的时候服务器会被一个请求炸内存。 还是有点尴尬的, 所以我发一篇博客之后还得自己去看一眼, 不然几个请求过去服务器炸了就很尴尬了。

Last modification:January 31st, 2020 at 02:55 pm