Everything

我的Typecho优化折腾之路

by Mion, 2021-07-17


很久不见!时隔六年,我又尝试在自己简陋的博客上写点什么,希望这次不要再早早夭折。既然决定重新开始,那总得费点心准备准备。以往尝试过Emlog、WordPress、Typecho等博客程序,也粗浅浏览过Hexo静态博客文档,最后还是小而美的Typecho最得我心。小巧的体积、高效的相应、简明的操作无不让日渐懒癌的我如获至宝。在此,我将分享Typecho从开箱到上线的全过程,并附上一些优化思路。

目前本站的PageSpeed Insights评分为99分,全站加载在0.5s左右,数据可以说是非常好看了。


PageSpeed Insights

关于Server的调教

不论怎么说Server的选择与调教永远是站点良好表现的基础,于是我在此分享关于网络、环境、插件等条件思路。

主机选择

Typecho本身足够轻量,再考虑到站点只会有我自己访问,所以并不需要非常高的配置。主机所在地域也是非常重要的一环,需要考虑各种因素:访问用户(我自己)所处的位置、网络线路、是否需要备案等。国内主机优点主要体现在更快的连接速度,但也存在一些并不是完全无法克服的缺点更多:需要备案、忍受小水管等;国外主机带宽充足、流量大碗够用,但是如果线路选择不佳则会出现网站TTFB爆炸的情况。

综上,作为成熟的大人,我,全都要!本站采用多节点负载均衡,各节点间数据库主从同步,不同地域流量分流,在进行合理的配置之后能够极大地提升高并发场景下的性能(虽然并不会有这样的情况),同时兼顾不同地域访客的访问体验。(具体网络拓扑结构请往下走QwQ~)

环境与插件

首先要介绍TpCache与Redis这两大法宝的组合啦!

TpCache能增加网站并发能力,减少数据库读写,极大缩减TTFB,体验飞一样地感觉,亲测有效!

使用了TpCache+Redis组合以后,小伙伴纷纷反馈打开快到飞起。(你打开谷歌首页有多快,就有多快。

——《Typecho优化 - 响应速度&性能优化 - TpCache缓存插件安装

第二个不得不提的就是ShortLinks插件,此插件可以将外链转换网站内链并跳转。

以下内容来自于项目README:

  1. 把外部链接转yi换为 your_blog_path/go/key/,撰写链接页面支持修改
  2. 通过菜单“创建->短链接”设置;
  3. 自定义短链功能来自golinks
  4. 支持 referer 白名单和外链转换白名单;
  5. 支持跳转页面,可以自行制作模板放到 templates 目录下,插件设置里可选择,目前自带 5 个模板;
  6. 支持自定义字段转换(实验性功能,开启强制转换后更好用);
  7. 支持关闭指定页面的链接转换功能。添加自定义字段 noshort 即可;
  8. 支持前台渲染插件(实验性功能,插件设置中开启强制转换)

CDN与缓存

网络传输也是保证速度与稳定性重要的一环,合理安排线路是机器重要的!

站点网络结构

在线路上,国内国外用户分流,且为保证性能与安全,站点也采取了负载均衡。以下是本站的的简单网络拓扑结构。


QWQBLOG网络结构.jpg

(其实这个小小的博客用不着如此豪华的配置,只是兴趣使然想折腾一下啦=^•ω•^=)

静态资源托管

为了缓解国内机器小水管的蛋疼问题,我们需要尽量减少大流量传输。那么将所有静态资源托管至第三方将会是不错的选择。

将本站JS,CSS分离后托管至七牛云KoDo存储,公共库如jquery等则采用公共镜像如cdn.jsdelivr.net,图片、附件等会增加删改的文件则依靠UP云提供的静态资源迁移功能。如此安排以来,源站仅需处理非常小一部分流量,让小水管也可以畅快喷射啦!

缓存策略

这一块不太想仔细提,因为自身也不够专业。主要是在CDN端进行一些简单的静态资源缓存配置、再添加上一个合理的浏览器缓存,完成!

CDN

在这里就是要吹一吹又拍云了。

首先采用它的原因是又拍云联盟成员赠送10GB免费存储+每月15GB免费CDN流量,申请门槛极低,仅需在网站底部添加链接且轻松过审。其中赠送的10GB存储可以存放一些静态文件(但是因为其蛋疼的文件管理方式我还是选择七牛云),15GB的CDN流量不区分HTTP或HTTPS流量(在这里点名批评七牛云),可以支持这样的小站点基本维持生存。

又拍云提供的一系列功能也是值得吹爆,各种标准的支持也是一直走在前列。以下是个人认为超赞的一些功能:

功能名 功能描述 使用体验
源站资源迁移 可将源站静态资源无缝迁移到又拍云存储,当客户端下次访问相同的资源时,无需回用户自主源。 需要配合又拍云的对象存储,刚好利用赠送的空间。能够极大减小源站网络压力!
分段缓存 开启该功能可提高文件的缓存命中率,提升用户的访问速度,并节省回源带宽。 好东西!
HTTP/3 HTTP/3 基于 QUIC 协议,提供比 TCP 和 TLS 更高的加密和性能,又拍云 CDN 平台已全面开启公测使用。 可以说是非常先进了(虽然客户端并没有普及且国内UDP环境实在太拉)
多版本TLS支持 又拍云支持从TLS 1.0 - 1.3 并且可以要求最低TLS版本,同时提高速度与网络安全性! 好东西!
地区访问限制 允许或禁止特定区域的终端用户对网站资源的访问,支持按国家/地区、省份、运营商等维度进行配置。 可以对用户访问进行一些简单的控制,减少被攻击时的压力。
CC 防护 针对网络安全领域中的 CC 攻击而进行的一种应用层攻击防护,针对匹配的 URI 进行页面校验,来决定是放行还是直接拦截。 开起来应该也能起到安慰作用吧(亲测很鸡肋)
WAF 保护 WAF 也即 Web Application Firewall,能有效拦截跨站攻击、SQL 注入和其他代码执行等多种攻击方式。 同上!
WebP 自适应 基于 CDN 平台的 WebP 自适应方案,智能判断浏览器是否支持 WebP,来决定返回 WebP 格式图片还是原图,从而减少网络传输消耗。 这个功能真的吹爆

当然,以上列举的功能只是冰山一角,也并不是说其他服务商不提供以上功能。只是在综合考量下,又拍云真的是非常不错的选择。

折腾姿势千千万,以上只是小菜鸡自己总结的一些折腾经验,恳请指教!

Typecho 折腾日记 Typecho优化 CDN 又拍云

作者: Mion

2024 © Mion'Blog & Theme By xingr