基于宝塔面板的“配置 Nginx fastcgi_cache缓存”,适用于WordPress网站前端优化,后端建议大家使用memcached/redis来优化数据库即可
宝塔默认已安装好ngx_cache_purge模块
nginx -V 2>&1 | grep -o ngx_cache_purge
查看ngx_cache_purge是否安装,没有数据表示未安装
所以我没只需要通过修改网站配置文件来启用此模块。选择对应网站,点击设置,修改配置文件即可
1.ngx_cache_purge模块配置
1.1设置缓存路径
文件缓存还是内存缓存?
- 在fastcgi_cache_path中,可以将它设置为内存路径,例如:
/dev/shm/nginx-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;
,如果你的磁盘IO很慢的话建议采用此方式,毕竟内存的读写速度非常快。 - 当然,你也可以使用文件缓存路径:
/tmp/wpcache/temp
- 首先创建缓存目录,这里用的是文件缓存,也可选择内存缓存,我机子内存小,具体根据个人所需嘛
- mkdir -p /tmp/wpcache/temp
选择好了以后,需要在对应的目录(/dev/shm
或者/tmp
)下创建对应的文件夹temp
1.2缓存密钥
就是keys_zone=WORDPRESS
中的WORDPRESS,你可以设置为自己喜欢的,但注意配置中需保持一致,每一个网站设置一个专用的
2.服务器配置Nginx fastcgi_cache
2.1选择设置站点
首先,将以下代码复制到网站配置文件顶部
#下面 2 行的中的 wpcache 路径请自行提前创建,否则可能会路径不存在而无法启动 nginx,max_size 请根据分区大小自行设置
fastcgi_cache_path /tmp/wpcache levels=1:2 keys_zone=WORDPRESS:250m inactive=1d max_size=1G;
fastcgi_temp_path /tmp/wpcache/temp;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
#忽略一切 nocache 申明,避免不缓存伪静态等
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
#Ps:如果是多个站点,以上内容不要重复添加,否则会冲突,可以考虑将以上内容添加到 nginx.conf 里面,避免加了多次。
2.2缓存设置
然后在server字段下添加下方代码,我自己这边是添加在 #SSL-END
下方:
注意
1)add_header Cache-Control如果是动态内容要实时更新的话,可以设置为0,否则可以设置时间大一些,单位是秒。
2)sock的路径一定要填对,否则会出现502错误,关于sock,直接去/tmp/目录下查看对应的文件即可,类似本站得的php-cgi-74.sock;
3)代码里面的服务器公网IP换成你的服务器公网IP。
WORDPRESS 和最上方的 keys_zone= 一致即可
启用fastcgi_cache缓存时,发现在Nginx配置文件中添加了Cache-Control信息,但是总是不生效。HTTP头部信息会总会包含以下信息:
Cache-Control: no-store,no-cache,must-revalidate,post-check=0,pre-check=0 和 Pragma: no-cache
修改宝塔面板中php配置文件中的关键词session.cache_limiter,默认值是 nocache ,将它设置为none即可
session.cache_limiter=none
3.WordPress缓存处理配置
3.1插件版本
进入WordPress 后台插件安装界面搜索 Nginx Helper 关键词在线安装即可
1)开启purge,选择nginx Fastcgin cahe,因为就我们用就是这个缓存。
2)选择 Delete local server cache files。当然第一个也可以用,但是一般推荐用Delete local server cache files,因为每个服务器的环境都不一样,缓存路径也会不尽相同就会导致插件无法找到缓存文件并删除!
3)插件下面还提供了其它的一些设置,功能非常丰富,例如发表新文章、新评论时是否更新Nginx缓存等,根据自己需要勾选即可。
3.2插件法注意事项
由于插件作者定义的缓存路径是 /var/run/nginx-cache ,而我们可能会根据服务器实际情况来自定义缓存路径,这样一来,缓存路径的不同就会导致插件无法找到缓存文件并删除。
添加以下代码到WordPress根目录的wp-config.php文件中。
提示-根据实际情况定义缓存的存放路径
define( 'RT_WP_NGINX_HELPER_CACHE_PATH','/tmp/wpcache');
4. 权限设置
open_basedir=/www/wwwroot/blog.luoca.net/:/tmp/:/tmp/wpcache/
暂无评论内容