Super Static Cache: WordPress高级纯静态插件

 分类: PHP

Super Static Cache是一款WordPress缓存插件,旨在给使用WP的网站提供配置简单,缓存效率高,通用性强的解决方案。

目前国内WP的缓存插件中,Wp super cache和cos-html-cache可能是最为众人所熟知的缓存产品,但是这两个插件各有优缺点。

Wp super cache最著名的wordpress缓存插件之一,它是一款高级插件,能够根据需要作出很多配置,还能自动设置缓存过期时间,在大多数情况下都非常实用。但是一但数据量多大,就可能因为不合理的设置导致服务器压力过大,出现网站反应速度慢,打不开等情况。Super Static Cache在大多数情况下可以替换它。

cos-html-cache是国人开发的一款wordpress纯静态化插件,会自动生成文静态文档,下次访问会直接通过web服务器而不是php,总体表现良好,但是它对固定链接的要求非常高,必须是带有.html的后缀才能被缓存,而且只有一种缓存模式,所有缓存文件和程序文件混在在一起,非常难于管理。Super Static Cache可以完全替代cos-html-cache。

Super Static Cache集合wp super cache和cos-html-cache的特点,安装配置简单,缓存效率高,有良好的交互,有Direct,PHP和Rewrite三种模式,还能根据需要设置不缓存的页面。

Super Static Cache最新版界面

Super Static Cache最新版界面

安装方法:把super-static-cache上传到wordpress的插件目录,“wp-content/plugins/”,在后台的插件管理中激活super static cache,然后进入设置->Super Static Cache中启用,选择插件的运行方式(默认为关闭状态),然后升级您的固定链接格式。

最新版本下载地址

1,插件已经被wordpress收录,去wordpress下载
2,在后台插件安装界面直接搜索Super Static Cache下载安装
3,去Github上下载,欢迎为super static cache pull requests.

FAQ

1, 缓存的加载速度快不快?
缓存好之后,下次访问次文章时,web服务器会直接访问这个缓存文件(Direct模式和Rewrite模式),并不通过wordpress,也不会查询数据库,这样节省了很多资源。即使这样,加载速度也会和您的服务器有关系。

2, 直接缓存和重写缓存有什么区别?
直接缓存会根据固定连接的设置,把缓存文件直接存放在wordpress安装目录下,如果页面较多的话,会导致wordpress程序文件和缓存文件混在一起,重写缓存就是专门建立一个缓存存放目录(super-static-cache)来存在这些缓存文件。当然,必须要升级网站的rewrite规则。

3,super static cache适用于哪些场合?
super static cache的诞生起初是为了满足我个人的工作需要,和其它缓存插件一样,有自己适用的场合。 如果你的网站内容很多,访问量大,数据库服务器压力巨大,但是磁盘空间充足,可以选择super static cache,反过来,如果您的网站内容少,流量低,更新频繁,不推荐使用super static cache。

4, 如何清除缓存文件?
最新版本的高级设置里有根据缓存类型清理缓存的选项,如果你需要清理所有缓存,直接选择所有(ALL),然后点击清理按钮即可。需要注意的是,由于服务器环境,权限配置等一些因素,可能导致缓存清理不完的情况,如遇到这种情况,请给我留言。

5, 新增的PHP模式有何特点?
PHP模式是3.0版本中新增的缓存模式,相对其它两种模式,它是最耗费资源的模式,因为这种缓存模式还是需要数据库的支撑,这就意味着如果数据库宕机,网站是打不开的,PHP模式只是减少了数据库的查询次数。它的优点是兼容部分插件。

6, 严格缓存模式和非严格缓存模式是什么?
严格模式和非严格模式仅针对Direct模式,它要解决的是关于URL的问题,严格模式下,类似www.example.com/archives/1这种url是不能被缓存的,非严格模式下,这类的url会被缓存,但是第二次访问服务器一般会重定向到www.example.com/archives/1/(注意后面的斜杠)。如果你使用PHP模式或者Rewrite模式,忽略这项配置即可。

7, 为什么缓存成功之后,搜索功能不能用了?
搜索功能不能使用是因为搜索表单的目标地址地址是”/”, 而”/”指向的是目录index,很多服务器的index.html的优先级比index.php高,所以操作搜索功能失效。解决办法: a, 把搜索的目标地址改成”/index.php”(或者WP相应安装目录的index.php)。b, 关闭首页缓存。c, 使用Rewrite缓存模式。

8, Super Static Cache Spider是什么?
当内容更新时,Super Static Cache会自动建立缓存,Super Static Cache Spider是自动建立缓存的爬行蜘蛛,php开启curl扩展,日志中才能看到Super Static Cache Spider的爬行轨迹,它的来源IP为您的服务器或者CDN提供商的IP地址。Super Static Cache Spider只会内容作出更新时爬行。

9, 为什么访问会出现403错误或者返回目录的index?
当使用Direct模式,并且固定链接含有多级目录设置,如/%year%/%monthnum%/%day%/%postname%/时,网站的文章的url是类似www.example.com/2015/03/02/hellow-world/,当缓存生成之后,访问www.example.com/2015/03/02/,www.example.com/2015/03/等时要么返回403(web服务器没有开启autoindex时),要么返回相应目录的index(web服务器开启autoindex时)。如果你的网站的固定链接是类似上面这种深层次的,推荐使用Rewrite模式,可以避免此问题发生。

10, 伪静态规则怎么添加?
当使用Rewrite模式时,需要往web服务器上添加伪静态规则,伪静态规则的生成办法是,选中rewrite模式,点击升级,系统会自动生成伪静态规则(暂时只支持apache和nginx)。对于apache,要把生成的伪静态规则添加到网站的.htaccess或httpd.conf里;对于nginx,则需要把伪静态规则添加到相应配置的server字段里。添加时,注意要把这个伪静态规则添加到所有伪静态规则的之前。添加之后,再次点击升级,如果提示消失,则表明规则添加正确。

11, nginx上为什么会提示location Duplicate(location字段重复)?
Nginx一个路径只支持一个location,如果在添加Super Static Cache之前,你的Nginx有和插件系统的伪静态规则一样的location,把两个伪静态合并到一起,然后添加到服务器。注意保持插件的伪静态规则在前面。

12, 为什么我在后台发布文章,缓存可以更新,用工具采集,缓存就不能更新?
Super Static Cache缓存建立的原理是根据系统的动作,在后台发布文章时,系统能够监测到相关动作并建立缓存,如果直接把数据插入到数据库,系统会因为监测不到动作也不能建立缓存。如果你的网站使用工具进行采集,推荐在设置页面取消首页缓存,或者使用crontab等工具定期更新首页缓存。

13, 我想指定单个不被缓存的页面
在3.3.1版本中加入了指定单个不需要缓存页面的功能,直接在此处填入不想要缓存的页面网址即可,一行一个。

14, 我的服务器网站多,单个网站内容也多,能否支持缓存压缩?
由于某些网站内容较多,庞大的缓存页面占据较多的硬盘空间,所以Super Static Cache在最新的3.3.4版本中开始支持对缓存文件进行压缩,目前支持apache和nginx服务器,nginx的支持程度更高一些,要使其工作正常,nginx必须安装ngx_http_gzip_static_modulengx_http_gunzip_module两个模板,apache必须安装mod_headers模块,缓存模式须为rewrite模式或者php模式。

15, 缓存压缩能节省多少空间?
插件采用gzip压缩库,详细信息可访问http://www.gzip.org/,一般情况下看来,节省50%以上的空间是没有问题的。

更新日志

1,安装卸载时报Notice,已修复,感谢@camson反馈
2,使用部分主题时,用户登陆时和不登陆前台界面不一样导致缓存不相同,已修复
3,已升级致2.0.0,功能:a.支持rewrite模式,如果选择,系统会在WP的安装目录下创建一个super-static-cache目录,会把所有缓存放到这个目录里,开启这个功能需要升级rewirte规则。b.英语管理后台的支持。c.bug的修复。d.文章发布会自动构建缓存。e.文章更改也会自动构建缓存。f.文章删除会自动删除缓存。
4,2.0.1: 优化nginx下选择rewrite模式的rewrite规则。
5,2.0.2: 增加url中含有多字节字符的缓存支持(由于windows服务器不同语种使用各不一样的字符集编码,所以暂不支持windows服务器的多字节缓存支持)
6,3.0:2015年1月26日更新。增加PHP缓存模式,增加tag,category页面自动更新功能,增加严格与非严格缓存模式, 优化删除缓存功能,bug修复。
7,3.2:2015年8月14日更新。修复之前bug,后台管理界面更新,增加多项功能: a, 用户可以根据需求设置缓存自动建立/重建的时机。 b, 清理缓存更新洗化,用户可根据需求清理指定的缓存。
8,3.3.1:2016年4月19日更新。增加指定不缓存单个页面的功能。
9, 3.3.4:2017年5月17日更新。增加缓存压缩功能,对于文章较多的网站能够节省50%以上的空间。

捐赠

如果super static cache对你的工作有帮助,您希望其继续开发更新,欢迎给我捐款:

一:用支付宝钱包扫描下面二维码:
捐款
二:用微信扫描下面二维码:
捐款
三: 购买推荐书籍赞助我:
我的书单

发表评论

评论列表:

河枯
河枯
我这边一直提示 缓存功能没有开启 我都重新装了 wp super cache 但是还是提醒 没有开启缓存 而且每次我打开 super-static-cache 的配置页面都会卡上10分钟左右 前台页面 全部卡死 之后才恢复 Nginx的伪静态我也配置了
回复此留言
max
max
设置按钮点后为什么无法使用,一直转
回复此留言
Learningman
Learningman
请问能不能兼容一下Auto optimize,缓存时也聚合Auto Optimize生成的cache js css
回复此留言
Hito
Hito
感谢使用,插件会在设置的情况下,在评论通过时更新缓存,视服务器配置和网络速度,有时会出现等待时间较长。第二个问题如果想让登陆用户不读取缓存,可通过伪静态记录实现,具体请看以前的留言。
kiss
kiss
使用贵插件速度非常的牛逼。但仍有二点疑问。希望博主解惑,感谢! 一,使用Rewrite模式 (推荐),评论在提交的时候非常慢,可能是要重建页面,这个时间有点久。 二,用户登陆以后,点击一个页面就变成未登陆状态了。因为这是一个完全静态的页面。请教下如何综合处理下这两个问题呢?感谢!
回复此留言
kiss
kiss
使用贵插件速度非常的牛逼。但仍有二点疑问。希望博主解惑,感谢! 一,使用Rewrite模式 (推荐),评论在提交的时候非常慢,可能是要重建页面,这个时间有点久。 二,用户登陆以后,点击一个页面就变成未登陆状态了。因为这是一个完全静态的页面。请教下如何综合处理下这两个问题呢?感谢!
回复此留言
Hito
Hito
感谢使用和回复,关于第一个问题,是因为考虑到某些情况下用户需要回源访问,例如搜索,所以设置带查询的都直接回源了,如不需要可以在伪静态规则中去掉相应规则即可。 关于第二个问题,我最近也注意到了,我会抽时间完善改进的,谢谢!
zlsin
zlsin
博主,有个问题不知道算不算bug,就是访问像https://www.hitoy.org/super-static-cache-for-wordperss.html?dir=wp-content(以本站为例)这种连接会直接回源访问服务器,访问首页https://www.hitoy.org/?dir=wp-content首页底部页码连接就会被改变为https://www.hitoy.org/page/2?dir=wp-content有时会被插件缓存为首页,底部页码连接就一直显示为https://www.hitoy.org/page/2(可以是任意存在页码)?dir=wp-content,导致访客点击也无法访问下一页了
回复此留言
Hito
Hito
在后台设置可以开启评论通过之后自动刷新缓存
阿里云百科网
阿里云百科网
您好,使用这个插件是不是文章页的评论就是失效了?有没有办法能够解决呢
回复此留言
阿里云百科网
阿里云百科网
您好,使用这个插件是不是文章页的评论就是失效了?有没有办法能够解决呢
回复此留言
zlsin
zlsin
博主,有个问题不知道算不算bug,就是访问像https://www.hitoy.org/super-static-cache-for-wordperss.html?dir=wp-content(以本站为例)这种连接会直接回源访问服务器,访问首页https://www.hitoy.org/?dir=wp-content首页底部页码连接就会被改变为https://www.hitoy.org/page/2?dir=wp-content有时会被插件缓存为首页,底部页码连接就一直显示为https://www.hitoy.org/page/2(可以是任意存在页码)?dir=wp-content,导致访客点击也无法访问下一页了
回复此留言
Voidark
Voidark
大佬,Nginx gzip gunzip模块都有,伪静态规则我也添加了。 但貌似插件检测出了问题,勾选开启压缩的话,总是提示我没有更新伪静态规则,其实已经更新了。 现在我选择关闭,但gzip_static always;gunzip on;依然放进规则里,这样不会提示我更新伪静态规则。测试过,缓存都是gz文件,所以没什么问题。
回复此留言
Hito
Hito
之前的回复里有,让手机的user-agent不读缓存
xuanlingluo
xuanlingluo
我的网站电脑和手机端是不同的布局,缓存之后手机端访问也变成PC端布局了。请问有没有解决办法,或者让手机端不读缓存文件
回复此留言
xuanlingluo
xuanlingluo
我的网站电脑和手机端是不同的布局,缓存之后手机端访问也变成PC端布局了。请问有没有解决办法,或者让手机端不读缓存文件
回复此留言