文章目录[隐藏]
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数据库缓存工具Redis配置教程,大幅度加速网站