Typecho配置Fastcgi_Cache缓存,如静态一般丝滑

此插件原作者 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 权限

步骤二:进入宝塔面板找到需要设置的网站,点开配置文件,如下图

配置步骤2

将下列代码复制到 上图 所标示的位置

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 则缓存成功

QQ截图20200306215451.png

下载地址: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

评论功能已关闭