基于openlitespeed伪静态规则启用LSCache缓存加速WordPress网站

今天老白博客跟大家分享的WordPress优化教程是:基于openlitespeed伪静态规则启用LSCache缓存加速WordPress网站。在使用下面任何重写规则在 cyberpanel面板中的站点.htaccess 中启用缓存之前,需要在openlitespeed面板里面先打开对应的缓存模块和功能。详细的打开教程和设置教程如下

https://www.xcbtmw.com/wp-content/uploads/replace/2023/08/17/fcff6cb57dfd7cc611d47a792c9b1221.webp

打开openlitespeed面板的缓存模块:https://www.xcbtmw.com/29582.html

cyberpanel伪静态设置

站点管理——重写规则里面
下面是一个简单的示例,使用重写规则将整个站点的公共缓存设置为 2 分钟:

RewriteEngine On
RewriteCond condition1
RewriteRule .* - [E=cache-control:max-age=120]

请注意,无需指定“公共”,因为这是默认值。此外,缓存时间以秒为单位(即使用 120 秒缓存 2 分钟)

下面是一个使用重写规则禁用缓存的简单示例:

RewriteEngine On
RewriteCond condition4
RewriteRule .* - [E=Cache-Control:no-cache]

下面是使用重写规则设置私有缓存的简单示例:

RewriteEngine On
RewriteCond condition3
RewriteRule .* - [E=cache-control:private]

WordPress配置示例

这段代码必须放在begin WordPress之前

# BEGIN LSCACHE
## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ##

RewriteEngine on
CacheLookup on
RewriteRule .* - [E=Cache-Control:no-autoflush]
RewriteRule .litespeed_conf.dat - [F,L]

### marker CACHE RESOURCE start ###
RewriteRule wp-content/.*/[^/]*(responsive|css|js|dynamic|loader|fonts).php - [E=cache-control:max-age=3600]
### marker CACHE RESOURCE end ###

### marker FAVICON start ###
RewriteRule favicon.ico$ - [E=cache-control:max-age=86400]
### marker FAVICON end ###

### marker WEBP start ###
RewriteCond %{HTTP_ACCEPT} "image/webp" [or]
RewriteCond %{HTTP_USER_AGENT} "Page Speed"
RewriteRule .* - [E=Cache-Control:vary=%{ENV:LSCACHE_VARY_VALUE}+webp]
RewriteCond %{HTTP_USER_AGENT} iPhone.*Version/(d{2}).*Safari
RewriteCond %1 >13
RewriteRule .* - [E=Cache-Control:vary=%{ENV:LSCACHE_VARY_VALUE}+webp]
### marker WEBP end ###

### marker DROPQS start ###
CacheKeyModify -qs:fbclid
CacheKeyModify -qs:gclid
CacheKeyModify -qs:utm*
CacheKeyModify -qs:_ga
### marker DROPQS end ###


## LITESPEED WP CACHE PLUGIN - Do not edit the contents of this block! ##
# END LSCACHE

快速简单配置

在WordPress站点启用了litespeed cache插件后,会在这里生产对应的伪静态规则,所以大家直接将自己设置好的规则复制过来用就行(然后删除插件)

缓存查看

在设置好了以后,站点就能看到缓存了

也可以使用lscache在线检测网站:https://check.lscache.io/

https://www.xcbtmw.com/wp-content/uploads/replace/2023/08/17/2ace606e52fb5cf9a027310dda477a42.webp

缓存清除

计划任务清除

由于我们没有使用插件,所以缓存需要手动清除,以 root 用户或缓存所有者身份运行 crontab 以进行自我管理

crontab -e

虚拟主机缓存根目录通常位于 /usr/local/lsws/cachedata

*/10 * * * * root find /virtualhost/cache/root/directory/ -type f -mmin +8 -delete 2>/dev/null

说明:此 cron 作业每 10 分钟删除一次超过 8 分钟的缓存文件。由于缓存 TTL 设置为 120 秒(2 分钟),因此删除这些文件是安全的,因为它们远远超过了它们的 TTL。

PHP 脚本清除

可以创建一个 PHP 脚本来按 URL 清除缓存

Usage: php $argv[0] -(r|p) domain url [server_ip] [port]
-r method option: Refresh cache (use stale cache while updating cache)
-p method option: Purge cache (delete cache entry)
domain: required parameter for domain name
url: required parameter for url
server_ip: optional parameter, default is 127.0.0.1
server_port: optional parameter, default is 80

参数说明:

  • -(r|p):这是一个选项参数,用于指定刷新或清理缓存的方法。您可以选择其中一个选项进行操作。
    • r:表示刷新缓存,即在更新缓存时使用旧的缓存。
    • p:表示清理缓存,即删除缓存条目。
  • domain:这是一个必填参数,用于指定域名。
  • url:这是一个必填参数,用于指定要操作的URL。
  • server_ip:这是一个可选参数,默认为127.0.0.1,用于指定服务器的IP地址。
  • port:这是一个可选参数,默认为80,用于指定服务器的端口。

通过这段代码,您可以在命令行中使用php命令来执行该脚本,并根据需要选择刷新或清理缓存的方法。同时,您需要提供域名和URL作为必填参数,以及可选的服务器IP地址和端口。