WordPress开启nginx fastcgi_cache缓存加速网站

玩WordPress已经很多年了,但是都没有坚持下来,记得最早的时候是2009年,那时候注册了两个域名,cnscz.cn 另外一个是jiuyueer.cn,用了一年,就荒废了,那时候注册cn域名才1块钱。后来又陆陆续续弄了两三次网站,想记录点东西,都以失败告终。

这个域名使用也有一两年了,之前购买了知更鸟的begin主题,写了些东西,后来折腾服务器,把数据完全弄丢失了。然后又重新折腾,使用现在用的这个模板。

对于我个人来说,我是一个不折腾会死的人。所以总是折腾怎么把网站加快。以前使用memcached缓存,后来缓存Redis缓存。在使用Redis缓存的时候,发现WordPress官方有一个叫做Nginx Helper的插件可以清理Redis缓存。并且在插件设置上看到可以使用一个nginx Fastcgi cache的选项,遂用蹩脚的英语开始看怎么使用这个功能。

fastcgi cache

经过一番努力之后,终于折腾成功,后来百度一下,才知道,国内大佬张戈博客早就使用了这个功能。

要使用加速,首先需要加载nginx的ngx_cache_purge 模块

进入服务器,查看nginx是否已经编译了这个模块,食用方法:ningx -V

如果出现--add-module=../ngx_cache_purge-2.3这样的,说明已经加载成功,如果没有加载成功,需要自己重新编译nginx。如果你跟我一样使用的是军哥的lnmp一件安装包,你只需要在lnmp.conf这个文件中Nginx_Modules_Options=''这个参数里面添加上ngx_cache_purge-2.3的路径,然后upgrade就可以了。

其他的方式,可以参考张戈博客里面的升级方式。

安装好模块之后,配置nginx

在server模块下面添加如下代码,请按着自己实际情况自行修改。
我将如下几行代码,放置在我的nginx.conf文件里面,因为,我有好几个网站在一个服务器上。

#下面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;

然后将下面的代码放置到你的server模块里面。

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.sock;               fastcgi_index index.php;               include fastcgi.conf;               #新增的缓存规则               fastcgi_cache_bypass $skip_cache;               fastcgi_no_cache $skip_cache;               add_header X-Cache "$upstream_cache_status From $host";               fastcgi_cache blog;               fastcgi_cache_valid 200 301 302 304 1d;       }       #缓存清理配置(可选模块,请细看下文说明)       location ~ /purge(/.*) {           allow 127.0.0.1;           allow "此处填写你服务器的真实外网 IP";           deny all;           fastcgi_cache_purge blog "$scheme$request_method$host$1";       }       后面为自己的配置!!

至于说上述代码应该放到站点.conf 文件的 Server{}哪里,比较保险的建议放在站点 server_name 和 root 的下面为宜,理论上这样最完美。

注:代码中红色加粗的地方是需要对应 nginx.conf 里相应参数的以及需要修改为自己服务器的实际内容
弄好之后,就需要安装前文说的nginx helper插件了。

安装nginx helper插件

完成以上之后,重启nginx服务,FastCGI cache就生效了。这是,在WordPress后台搜索Nginx Helper 关键词在线安装。设置好插件之后,就一切OK了。

因为使用目前这个模板,无法使用Nginx helper插件清除缓存,经过查询之后,换成了Nginx cache插件。更新内容就自动清除缓存!

© 版权声明
THE END
喜欢就支持以下吧
点赞1赞赏 分享