2021WordPress网站加速新方法-Nginx fastcgi_cache缓存加速

释放双眼,带上耳机,听听看~!

WordPress网站搭建容易,优化却是件难事,特别对于我这种小白。来来回回尝试过很多优化方法以及插件。给大家介绍的利用宝塔面板的Nginx开启fastcgi_cache缓存加速,这能使WordPress实现静态页面访问,效率比PHP缓存插件高很多。

宝塔面板安装Nginx fastcgi_cache

首先宝塔终端执行以下命令,查看当前ngnix配置,是否装了Nginx fastcgi_cache

nginx -V 

宝塔面板ngnix比较新的版本应该都装配了(我的是1.19),那如果未装配应该怎样安装呢?

宝塔环境未编译ngx_cache_purge

默认安装脚本:/www/server/panel/install/nginx.sh

nginx源码目录:/www/server/nginx/src/

我们需要将ngx_cache_purge模块下载解压到/www/server/nginx/src/
以下是编译模块secure_link的过程,大家自己参考!

cd /www/server/nginx/src/
 ./configure --user=www --group=www --prefix=/www/server/nginx --with-openssl=/www/server/nginx/src/openssl --add-module=/www/server/nginx/src/ngx_devel_kit --add-module=/www/server/nginx/src/lua_nginx_module --add-module=/www/server/nginx/src/ngx_cache_purge --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_gunzip_module --with-stream --with-stream_ssl_module --with-http_sub_module --with-http_flv_module --with-http_addition_module --with-http_realip_module --with-http_mp4_module --with-ld-opt="-Wl,-E" --with-http_secure_link_module
 make
 rm -f /www/server/nginx/sbin/nginx.old
 mv /www/server/nginx/sbin/nginx /www/server/nginx/sbin/nginx.old
 cp objs/nginx /www/server/nginx/sbin/nginx
 make upgrade

宝塔面板Nginx配置方法

之前看大鸟博客的,原谅我太笨,实在没看懂,后面又找到其他的教程,才看懂

首先打开宝塔面板的网站,打开站点配置,在该文件顶部sever前面输入以下代码

顶部代码

下面各个参数的含义请自行百度!
 下面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里面,避免加了多次。

其中的目录文件在对应处先创建好,不然会报错

回到我们的站点配置,在#SSL-END的下方添加以下代码

set $skip_cache 0;
 
#post访问不缓存
 
if ($request_method = POST) {
 
set $skip_cache 1;
 
}
 
#动态查询不缓存
 
if ($query_string != "") {
 
set $skip_cache 1;
 
}
 
#后台等特定页面不缓存(其他需求请自行添加即可)
 
if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|index.php|sitemap(_index)?.xml") {
 
set $skip_cache 1;
 
}
 
#对登录用户、评论过的用户不展示缓存
 
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
 
set $skip_cache 1;
 
}
 
#这里请参考你网站之前的配置,特别是sock的路径,弄错了就502了!
 
 location ~ [^/]\.php(/|$)
 
{
 
 try_files $uri =404;
 
 fastcgi_pass unix:/tmp/php-cgi-72.sock;
 
 fastcgi_index index.php;
 
 include fastcgi.conf;
 
 add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
 
#新增的缓存规则
 
 fastcgi_cache_bypass $skip_cache;
 
 fastcgi_no_cache $skip_cache;
 
 add_header X-Cache "$upstream_cache_status From $host";
 
 fastcgi_cache WORDPRESS;
 
 add_header Cache-Control max-age=0;
 
 add_header Nginx-Cache "$upstream_cache_status";
 
 add_header Last-Modified $date_gmt;
 
 add_header X-Frame-Options SAMEORIGIN; # 只允许本站用 frame 来嵌套
 
 add_header X-Content-Type-Options nosniff; # 禁止嗅探文件类型
 
 add_header X-XSS-Protection "1; mode=block"; # XSS 保护
 
 etag on;
 
 fastcgi_cache_valid 200 301 302 1d;
 
}
 
 
 
#缓存清理配置(可选模块,请细看下文说明)
 
 location ~ /purge(/.*) {
 
 allow 127.0.0.1;
 
 allow "此处填写你的服务器IP";
 
 deny all;
 
 fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1";
 
}

服务器ip记得填写,外网的

关于sock,宝塔面板的在/www/server/php/72/etc/php-fpm.conf中有配置路径宝塔面板的sock,如果不清楚,可以自己打开看下,然后复制到需要修改的地方就可以了。

2.2 简单说明

本地or内存?在fastcgi_cache_path和fastcgi_temp_path中,有人会建议将它设置为内存路径,例如:/dev/shm/nginx-cache levels=1:2 keys_zone=WORDPRESS:100m inactive=60m;,如果你的磁盘IO很慢的话建议采用此方式,毕竟内存的读写速度非常快。

add_header Cache-Control如果是动态内容要实时更新的话,可以设置为0,否则可以设置时间大一些。

请仔细阅读代码中的所有注释,该修改的修改,该创建的创建,该补充的根据实际情况补充,额,基本没什么问题的,宝塔面板的直接复制粘贴就可以了。

WordPress网站Nginx Helper插件配置

配置好了fastcgi_cache缓存之后,我们需要安装插件, fastcgi_cache 有一个量身定做的 WordPress 缓存清理插件:Nginx Helper。这个插件不定时更新,而且更新的很频繁。安装这个插件 ,非常简单,直接进入 WordPress 后台插件安装界面搜索 Nginx Helper 关键词在线安装即可。

关键两点已经勾选出来了,选择保存就行,其他的自行设置就ok了。

个人使用感受

咱们小白一个,实在不知道速度快慢咋看,只能看右下角查询次数与时间的区别,查询次数相对减少了许多

不能配置memcache和batcache使用,我的无痕模式会报错,可以配合redis使用

实用教程

WordPress 插件:WP-China Yes解决国内访问官网慢的最有效方法

2021-3-2 11:54:36

实用教程

让你的WordPress支持webp图片格式上传到媒体库

2021-4-20 16:34:26

搜索