很多人搭建 Typecho 之后都会觉得自己的网站有些慢,想要优化下打开速度,碰巧最近站长也在做优化,所以写一篇优化教程。


先贴一下我机器的配置:

BASH             ..                    root@MBR-Server
               .PLTJ.                  ---------------
              <><><><>                 OS: Tencent OS Server 3.1 20220217
     KKSSV' 4KKK LJ KKKL.'VSSKK        Host: CVM 3.0
     KKV' 4KKKKK LJ KKKKAL 'VKK        Kernel: 5.4.119-19-0009.1
     V' ' 'VKKKK LJ KKKKV' ' 'V        Network: 1 Mbps
     .4MA.' 'VKK LJ KKV' '.4Mb.        Packages: 1169 (rpm)
   . KKKKKA.' 'V LJ V' '.4KKKKK .      Shell: bash 4.4.20
 .4D KKKKKKKA.'' LJ ''.4KKKKKKK FA.    Terminal: /dev/pts/1
<QDD ++++++++++++  ++++++++++++ GFD>   CPU: AMD EPYC 7K62 (2) @ 2.595GHz
 'VD KKKKKKKK'.. LJ ..'KKKKKKKK FV     GPU: 00:02.0 Cirrus Logic GD 5446
   ' VKKKKK'. .4 LJ K. .'KKKKKV '      Memory: 1262MiB / 1721MiB
      'VK'. .4KK LJ KKA. .'KV'         SSD: 50GB
     A. . .4KKKK LJ KKKKA. . .4
     KKA. 'KKKKK LJ KKKKK' .4KK
     KKSSA. VKKK LJ KKKV .4SSKK
              <><><><>
               'MKKM'
                 ''

低配置的机子做好了优化速度也能很快,本站国内的平均打开速度为 1.0s,如果不做任何优化,那么本站首页的速度可能有 4s 左右

优化教程

测试速度

首先先测试一下当前的网页速度,按 F12 打开调试控制台,选择 网络,勾选持久日志和禁用缓存,清除 Service Worker,清理日志,刷新,调试控制台下面就会显示页面加载的耗时

顺便推荐一个更好用的网页测速工具:PageSpeed Insights

测试完成速度可以开始按照下面的教程优化了
(TIP:本站有目录功能)

WebP 压缩

WebP 是一个高压缩比的图片格式,支持无损和有损压缩,也支持透明图层,如果你网站的图片是 png 格式提供的,压缩为 WebP 通常会有很大的提升
WebP 图片的体积一般只有同等分辨率下 png 图片体积的十分之一。
目前压缩有两种常见的方法:

CDN 自动压缩

部分 CDN 可以自动给图片进行 WebP 压缩,如果客户端支持 WebP,则使用 WebP,否则提供原图

手动压缩

如果你的 CDN 不支持自动压缩,你也可以手动压缩,但是手动压缩会有一个问题,就是不支持 IE 浏览器
如果想要手动压缩,只需要前往 https://squoosh.app

PHP 版本

旧版本(5.x)的 PHP 运行 Typecho 会很慢,强烈建议更新到 7.x 或者 8.x
注:Typecho 近期推出了 1.2 版本,距离上次更新有五年之久,1.1 版本不兼容 PHP 7.4+

数据库缓存

网站加载时间(TTFB)长的一大原因是查询数据库耗时太长,采用缓存可以有效加速(用户打开网页直接使用缓存,不再查询数据库)
MySQL 8.0 弃用了查询缓存,所以我们需要选择一个其他的高性能缓存器,本站的数据库缓存采用了 Redis

Redis 安装

  1. 首先安装一个 Redis 6.2.6
  2. 然后给你的 PHP 安装 Redis 插件
  3. Typecho 内安装 TpCache

CDN

CDN(内容分发网络)可以有效加速网页静态资源,并隐藏源站 IP,如果你使用 CDN,建议把所有动态页面设置为“不缓存”,所有静态资源都设置为“365 天”

宝塔缓存

如果你用宝塔可以整一个,效果是挺好的,免费版每日 50000 次,破解版无限制,50000 次对普通个人肯定够了,除非遇上 CC

OpCache

脚本缓存器,直接安装即可

TCP Fast Open

该功能要求 Linux 3.7 以上,有的发行版使用老内核无法开启,使用 uname -r 检查 Linux 版本

5.4.119-19-0009.1

返回值大于 3.7 即可,目前已知 CentOS 7 是不支持该功能的
开启方法如下:

#二选一:
sysctl -w net.ipv4.tcp_fastoepn=3 #上传下载都允许 TFO
sysctl -w net.ipv4.tcp_fastoepn=2 #服务器模式,仅上传允许

HTTP/3

开启 HTTP/3 后可以有效提高握手效率,你需要编译 nginx-quic 来使用该功能
目前最新的 HTTP/3 版本有:h3(正式版)、h3-29(IETF)、h3-Q050(Google)
开启 HTTP/3 后,你可以看到服务器发回的响应有一个 alt-svc
👇 在这里测试你的网站是否支持 HTTP/3
https://http3check.net/

TCP BBR

开启 TCP BBR 可有效提高 TCP 连接性能,见此文章:
https://blog.mbrjun.cn/archives/431

MySQL 引擎

Typecho 旧版本使用 MySQL 更适合 MyISAM 引擎(默认就是 MyISAM),如果你设置了 Innodb,请改回 MyISAM
如果你升级到了 Release 1.2,那么请你使用 InnoDB

降低压缩率

动态文档压缩要消耗很长时间,请减小动态文档的压缩率,或者直接关闭压缩
GZip 压缩率设置为 9,TTFB 大约 500ms,设置为 4 大约 300ms,设置为 1 大约 200ms

Last modification:April 28, 2022
请我喝杯咖啡 - 为 MBRjun 和 Moefire Studio 提供支持