小朊的朋友圈
小朊
小朊博主

活着

记一次博客的优化记录

博客采用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文件

"; //加上调用更新程序的代码 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免插件实现首页静态化

THE END