VPS/云主机等
优惠信息分享

Wdcpv3,v2启用Nginxfastcgi_cache缓存加速提高wordpress访问速度

大鸟用wdcp比较多,但是wordpress如果不适用缓存那速度真是很慢,一直F5都可以把网站给打死,wordpress的缓存方案很多比如:

Memcached+Batcache

wp super cache

Redis缓存加速

当然还有很多别的方案,但是今天要说的是如何在wdcp下用Nginx fastcgi_cache缓存加速,Nginx fastcgi_cache缓存加速的好处就是所有的东西都缓存在nginx里面,避免了所有的绕路强少了冗余,应该说是比较高端的缓存方案,也是效果非常好的方法。

WordPress最好的优化方式就是尽量不安装插件,之前有分享过《Memcached+Batcache缓存加速》,Wordpress是典型的PHP-MySQL应用,去做数据库缓存,倒不如让轻量级的Nginx直接去缓存WordPress内容。

Nginx内置FastCgi缓存,但是不支持自动清除缓存。当你在Wordpress里面新建/修改一篇文章,或者访客提交评论的时候,自动清空相关的缓存是必要的!Nginx需要安装ngx_cache_purg+量身定做的WordPress缓存清理插件:Nginx Helper。下面看看如何操作!

备注:今天所讲的教程是基与:wdcp v3默认版本(wdcp v3 nginx环境下安装成功)  Centos 6.8 64位 

一. 安装Nginx ngx_cache_purge模块

1、检查是否安装ngx_purge_cache模块,wdcp的检查命令和lnmp的不一样是这样写:

/www/wdlinux/nginx-1.8.1/sbin/nginx -V  2>&1 | grep -o ngx_cache_purge

如果显示nginx-cache-purge即代表已安装,如下图WordPress优化——利用Nginx fastcgi_cache缓存加速

大鸟这里是已经安装好了这个模块,所以是有显示,如果没东西输出,则看下面的完整安装教程:

cd /root wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz wget http://nginx.org/download/nginx-1.8.1.tar.gz tar xzf ngx_cache_purge-2.3.tar.gz tar xzf nginx-1.8.1.tar.gz cd nginx-1.8.1 /www/wdlinux/nginx-1.8.1/sbin/nginx -V  2>&1 | grep -o ngx_cache_purge #查看nginx编译参数,最后加上--add-module=../ngx_cache_purge-2.3 ./configure --user=www --group=www --prefix=/www/wdlinux/nginx-1.8.1 --with-http_stub_status_module --with-ipv6 --with- http_gzip_static_module --with-http_realip_module --with-http_ssl_module --add-module=/root/ngx_cache_purge-2.3 make #编译,不需要make install了 service nginxd stop mv /www/wdlinux/nginx-1.8.1/sbin/nginx  /www/wdlinux/nginx-1.8.1/sbin/nginx.old cp objs/nginx /www/wdlinux/nginx-1.8.1/sbin/nginx /www/wdlinux/nginx-1.8.1/sbin/nginx -t #测试配置是否正确 service nginxd start /www/wdlinux/nginx-1.8.1/sbin/nginx -V  2>&1 | grep -o ngx_cache_purge ngx_cache_purge # 显示ngx_cache_purge表示已经安装成功

这是完成的安装过程,跟大鸟一样的wdcp v3默认的版本的直接复制就可以了,如果有人不懂可以留言问我!

二. Nginx配置

修改nginx虚拟主机配置文件,wdcp的配置文件/www/wdlinux/nginx/conf/vhost/keaibian.com.conf:如果找不到看图

wdcp Nginx配置的配置文件

#     参 考 1:http://jybb.me/nginx-wordpress-fastcgi_cache-purge#     参 考 2:https://rtcamp.com/wordpress-nginx/tutorials/single-site/fastcgi-cache-with-purging/#     参 考 3:https://zhangge.net/5042.html#     参 考 4:https://blog.linuxeye.com/439.html#     转载本文请务必保留以上申明,谢谢合作!fastcgi_cache_path /tmp/wpcache levels=1:2 keys_zone=WORDPRESS:250m inactive=1d max_size=1G;fastcgi_temp_path /tmp/wcache;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 {        listen       80;        root /www/web/keaibian_com/public_html;        server_name keaibian.com www.keaibian.com;        index  index.html index.php index.htm;        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;        }        location ~ [^/]\.php(/|$){    try_files $uri =404;    #wdcp的这里的监听是tcp的方式,请大家注意看清楚自己网站之前的配置,特别是sock的路径,弄错了就502了    fastcgi_pass  127.0.0.1:9000;    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 WORDPRESS;    fastcgi_cache_valid 200 301 302 30m;        }        location / {    #此处可以添加自定义的伪静态规则(之前你新增的伪静态规则可以添加到这,没有就不用了)    try_files $uri $uri/ /index.php?$args;    rewrite /wp-admin$ $scheme://$host$uri/ permanent;         }        #缓存清理配置(可选模块,请细看下文说明)        location ~ /purge(/.*) {allow 127.0.0.1;allow "216.127.161.37(此处填写你服务器的真实外网IP,这复制的时候修改下)";deny all;fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1";        }        location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {    access_log off; log_not_found off; expires max;        }        location = /robots.txt { access_log off; log_not_found off; }        location ~ /\. { deny  all; access_log off; log_not_found off; }        #请注意修改日志路径        access_log off;}

这个直接复制到原来的keaibian.com.conf这种文件里面!这里的改修改的修改,仔细看,认真看!看懂不就搞简单的缓存!

三、安装Nginx Helper插件(在wordpress后台搜索安装即可)

上文已经提到了 fastcgi_cache 有一个量身定做的WordPress缓存清理插件:Nginx Helper

所以,接下来我们就去安装这个插件 。非常简单,直接进入WordPress后台插件安装界面搜索 Nginx Helper 关键词在线安装即可。

安装后,从后台【工具】==>【Nginx Helper】打开插件设置界面如下所示:

安装Nginx Helper插件(在wordpress后台搜索安装即可)

勾上第启用缓存清理后,将出现如下选项:安装Nginx Helper插件(在wordpress后台搜索安装即可)

该怎么设置,应该看图就懂了吧?

清理模式选择

上图我也标注的比较清楚了,还是详细解释一下吧!

①、purge模式

这个模式需要保留上文 Nginx 配置中的 purge 清理路径,清理的时候会产生一个请求。

出于安全考虑,一般 purge 都不会完全开放!只有特定的 IP 可以访问,所以,如果用了CDN的朋友,再使用模式一,则需要在服务器上的 /etc/hosts 中将网站域名解析为服务器真实IP,以便插件直接请求purge路径,而不用走CDN节点,避免请求被拒绝。还是没搞懂的话就放弃这个模式吧!

②、文件模式

模式二是直接清理对应的缓存文件,不需要请求 purge这个清理路径,所以使用模式二,不需要配置上文 Nginx 的 purge 规则(我个人推荐使用这个模式)。

由于插件作者定义的缓存路径是 /var/run/nginx-cache ,而我们可能会根据服务器实际情况来自定义缓存路径,这样一来,缓存路径的不同就会导致插件无法找到缓存文件并删除!

解决办法:

很简单,在WordPress根目录下的wp-config.php中新增如下代码即可:

//根据实际情况定义缓存的存放路径 define( 'RT_WP_NGINX_HELPER_CACHE_PATH','/tmp/wpcache');

Ps:不知道添加到第几行的话,可以添加到 define(‘WPLANG’, ‘zh_CN’); 的后面即可。添加后建议重载一下php,确保变量生效(主要针对开启了PHP缓存的网站)。
四、效果预览

①、缓存效果

替换新的配置,并且重载Nginx之后,访问前台页面,查看header,会多出一个X-Cache 标志。

X-Cache 一般会有3个状态:MISS、HIT、BYPASS。

  • MISS表示未命中

即这个页面还没被缓存,新发布或刚被删除的页面,首次访问将出现这个状态

  • HIT表示缓存命中

打开一个会缓存的页面,比如文章内容html页面,F5刷新几次即可在F12开发者模式当中的Header头部信息中看到如图缓存命中状态:

hit缓存命中BYPASS表示缓存黑名单

即页面路径在Nginx规则中被设置成不缓存(set $skip_cache 1;),比如WP后台,查看header:WordPress优化——利用Nginx fastcgi_cache缓存加速
测试时候勾选Enable Logging(记录日志)、Enable Nginx Timestamp in HTML(插入缓存信息)插件的设置在这Nginx + WordPress + Fastcgi_Cache 自动清空缓存

我们勾选后查看网页源代码

Nginx开启fastcgi_cache缓存加速,支持html伪静态页面

就说这么多了,这个教程写的真累啊,也参考了很多大神的教程,希望对站长有所帮助!

赞(0)
未经允许不得转载:遗弃你|YIQINI.COM » Wdcpv3,v2启用Nginxfastcgi_cache缓存加速提高wordpress访问速度

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册