此插件原作者 https://cuojue.org/read/typecho-fastcgi_cache.html
为了让接下来的步骤简洁,推荐使用宝塔面板(因已内置 Ngx_cache_purge 模块)
插件特性直接在nginx层缓存,媲美静态页面速度
php请安装7.4 版本
支持所有页面缓存
支持内容修改之后自动更新内容、分类、首页缓存
支持评论生效更新缓存
支持登录状态下不缓存
支持搜索等动态页面不缓存
更新日志
v1.0 初始版本
已知问题
非js方式的访问统计插件会失效
使用方法
步骤一:需要修改/www/server/nginx/conf/nginx.conf配置文件
将下列代码,添加到 Nginx.conf 文件的 server 字段上方即可
fastcgi_cache_path /www/server/nginx/fastcgi_cache_dir levels=1:2 keys_zone=fcache:250m inactive=1d max_size=1G;
fastcgi_temp_path /www/server/nginx/fastcgi_cache_dir/temp;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
小提示,缓存目录可自定义如下,也可按照下方路径创建目录并给予 777 权限:
1、路径 /www/server/nginx/fastcgi_cache_dir 需自行创建 并给予 777 权限
2、路径 /www/server/nginx/fastcgi_cache_dir/temp 需自行创建 并给予 777 权限
步骤二:进入宝塔面板找到需要设置的网站,点开配置文件,如下图

将下列代码复制到 上图 所标示的位置
set $skip_cache 0;
if ($request_method = POST) { set $skip_cache 1; }
if ($query_string != "") { set $skip_cache 1; }
if ($query_string ~ "_pjax=(.*)") { set $skip_cache 0; }
if ($request_uri ~* "/admin/|/action/|/search/|/feed/|baidu_sitemap.xml|sitemap.xml") { set $skip_cache 1; }
if ($http_cookie ~* "typecho_authCode") { set $skip_cache 1; }
location ~ [^/]\.php(/$) {
try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi-74.sock;
fastcgi_index index.php;
include fastcgi.conf;
include pathinfo.conf;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
add_header X-Cache "$upstream_cache_status From $host";
fastcgi_cache fcache;
fastcgi_cache_valid 200 1d;
}
location ~* /TOKEN/_clean_cache(.*) {
fastcgi_cache_purge fcache "$scheme$request_method$host$1$is_args$args";
}
Token演示:例如后台设置1150AE6A4F7938AE754D则这里设置为
location ~* /1150AE6A4F7938AE754D/_clean_cache(.*) {
fastcgi_cache_purge fcache "$scheme$request_method$host$1$is_args$args";
}
设置完成后,再宝塔面板中找到Nginx进程,重载进程,重启Nginx,在 Typecho 后台 启动插件即可
注意:插件里的token务必为 上面设置的,另外 目录,请和伪静态目录一致
缓存效果
替换新的配置,并且重载Nginx之后,访问前台页面,查看header,会多出一个 X-Cache 标志。
X-Cache 一般会有3个状态:MISS、HIT、BYPASS。
MISS表示未命中
即这个页面还没被缓存,新发布或刚被删除的页面,首次访问将出现这个状态(图略)。
HIT表示缓存命中
打开一个会缓存的页面,比如文章内容html页面,F5刷新几次即可在F12开发者模式当中的Header头部信息中看到如图缓存命中状态:
如出现下图所有 HIT 则缓存成功

下载地址:https://blog-gsc6k6eom-contribuvs-projects.vercel.app/2020/03/07/145/2110354236.zip
关于缓存后,评论不更新以及页面统计数据不更新的设置方法
Typecho的页面浏览统计JavaScript版 https://cuojue.org/read/typecho-PostViews.html
handsome 主题缓存后修改 https://cuojue.org/read/typecho-cache-handsome.html
评论功能已关闭