博客采用typecho强力驱动
介绍下我折腾我的博客的优化记录
基本上相当于我的记事本 大家有兴趣的话可以参考一下的
目前的访问速度 我个人认为还勉强够看

cdn使用

一般来说一个好的cdn是好的访问速度的前提
我的博客采用的是华为云国际站的dns分地域解析
国内解析到香港az搭建的cdn
海外包括香港澳门台湾都解析到了cloudflare.com cloudflare的cdn一直都是很可以的
itdog速度
如果大家的域名备案可以走国内的cdn 国内的cdn价格低 访问速度也是想当好的
没有备案的话可以像我一样挑选一家香港cdn 或者选择使用cloudflare的自选ip 参考我这篇文章

服务器的挑选

服务器的选择一般来说不需要太好的线路 配置够硬就行(套了cf基本上众生平等了)
我选用的是斯巴达2c2g的服务器 4837线路 对于我的垃圾博客来说非常够用了
美中不足的就是cpu是e5的 当然他家也有amd的服务器 就是稍贵些了
大家可以去尝试下他家的服务器
我之前试过用ovh的0.97搭建博客 但是性能太低了 总会有些奇奇怪怪的bug
还是推荐大家选个配置说得过去的服务器 那样子会舒服很多

nginx配置

nginx这里推荐把worker_procsses的auto改成你cpu的核数 然后gzip那里自己随便修改就好的
nginx
brotli压缩和tls1.3如果是整站套用的cf可以不用配置
cf直接可以设置的
brotli
tls1.3

brotli压缩

brotli是一款由谷歌推出的开源压缩算法
压缩效率照比gzip有显著提升 并且brotli和gzip能够共存 两个都开启来还是非常舒服的
首先编译安装nginx 安装过的卸载重装就好
自定义模块
自定义模块
模块名称:ngx_brotli
模块简介:ngx_brotli
模块参数:--add-module=/www/server/nginx/src/ngx_brotli
前置脚本:

mkdir -p /www/server/ngx_brotli
git clone https://github.com/google/ngx_brotli.git /www/server/ngx_brotli
cd /www/server/ngx_brotli && git submodule update --init

然后确定 直接编译安装就好 安装记得勾选ngx_brotli
nginx配置修改 在http段内添加如下
nginx配置

        brotli on;              #启用
        brotli_comp_level 11;    #压缩等级,1-11,太高的压缩水平可能需要更多的 CPU
        brotli_buffers 16 8k;   #请求缓冲区的数量和大小
        brotli_min_length 20;   #指定压缩数据的最小长度,只有大于或等于最小长度才会对其压缩。这里指定 20 字节
        brotli_types *;         #指定允许进行压缩类型
# brotli_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml text/html application/json image/svg application/font-woff application/vnd.ms-fontobject application/vnd.apple.mpegurl image/x-icon image/jpeg image/gif image/png image/bmp;
        brotli_static always;   #是否允许查找预处理好的、以 .br 结尾的压缩文件,可选值为 on、off、always
        brotli_window 512k;  

然后访问你的网站 f12打开
br安装成功
验证这里content-encoding为br即为安装成功

TLSV1.3

tls1.3配置成功 可以大大减少ssl的加载速度
宝塔的安装比较简单
在sever字段添加如下即可 完成后可以去sslabs验证myss验证l

ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
#ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+ECDSA+AES128:EECDH+aRSA+AES128:RSA+AES128:EECDH+ECDSA+AES256:EECDH+aRSA+AES256:RSA+AES256:EECDH+ECDSA+3DES:EECDH+aRSA+3DES:RSA+3DES:!MD5;

OCSP装订

ocsp可以加快握手速度提高安全性
在你的nginx的server段加上6条配置

ssl_stapling on;
ssl_stapling_responder http://baidu.com #填你的响应链证书
ssl_stapling_verify on; #验证 OCSP 信息响应适用的证书;
ssl_trusted_certificate /usr/local/nginx/conf/ssl/ocsp.xrpyq.crt;
resolver 8.8.8.8 8.8.4.4 223.5.5.5 valid=3600s; #OSCP 响应服务器的主机名,valid 表示缓存。(这里使用的是谷歌公共的 DNS 解析地址,备用为阿里的 DNS)
resolver_timeout 2s; #表示网络超时时间

ssl_stapling_responder填写根 CA 和中间证书验证 OCSP 响应的信任链
按鼠标操作信任链
ssl_trusted_certificate指向你的网站证书链可以在这里生成完整的证书链
证书链
安装给的注释配置好后
同样可以去sslabs验证myss验证l

php配置

php推荐用7.4 我这里用8.1一直懒得换了 有时候ty的一些插件用不了 很烦
拓展推荐安装reds和opcache 速度会有显著提升的
拓展
性能这里按你的实际填写就行 下面都给了解释的
性能调整
如果安装了reds或memcached记得到Session配置更改下

typecho配置

ty的配置没什么好说的
推荐一个插件TpCache
项目地址安装好后直接按官方那里说的用就行 很简单 但是也很实用
TpCache 魔改版
相比原版的 我更加推荐魔改版 不仅ui更胜一筹
功能也相应更多
支持全局缓存和markdown缓存
markdown缓存还是比较舒服的 我很喜欢 但是貌似并不适配php8.1 也就放弃了
具体大家可以去项目地址那边查看

实现首页静态化

在网站根目录创建一个f5_cache.php文件

<?php
$nowtime=time();
$pastsec = $nowtime - $_GET["t"];
if($pastsec<600)
{
exit; //10分钟更新一次,时间可以自己调整
}
ob_start(); //打开缓冲区
include("index.php");
$content = ob_get_contents(); //得到缓冲区的内容
$content .= "\n<script language=javascript src=\"f5_cache.php.php?t=".$nowtime."\">"; //加上调用更新程序的代码
file_put_contents("index.html",$content);
if (!function_exists("file_put_contents"))
{
function file_put_contents($fn,$fs)
{
$fp=fopen($fn,"w+");
fputs($fp,$fs);
fclose($fp);
}
}
?>
直接把这一串代码梭哈进去 然后访问http(s)://domain/f5_cache.php
会在你的网站根目录生成一个index.html的文件
然后打开网站设置 默认文档
网站设置
将index.php与index.html调换位置即可

鸣谢

Nginx开启OCSP加快SSL握手速度,提高网站响应速度
网站优化加速-开启TLSV1.3和Brotli压缩-Oneinstack,LNMP,宝塔面板
最新宝塔面板Nginx编译Brotli高级压缩教程
教你如何设置宝塔面板 Brotli压缩
Typecho免插件实现首页静态化