当前所在位置: 首页>>百科全书

利用nginx的fastcgi_cache缓存加速WordPress

发布时间:2025-10-19 15:00:21 本站作者 【 字体: 】 浏览:38 次

WordPress有很多的缓存加速方案,例如插件缓存(wp-super-cache、wp-rocket等)、PHP代码缓存等等,现分享本站使用的Nginx缓存。利用fastcgi_cache缓存。

在使用nginx缓存之前,必须在nginx里面加载专门的模块,这个模块叫做ngx_cache_purge。

添加ngx_cache_purge模块

下载ngx_cache_purge模块

ngx_cache_purge模块的官方地址:http://labs.frickle.com/files/。在这个地址找到最新版的模块版本 ,使用wget下载。

wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
tar zxvf ngx_cache_purge-2.3.tar.gz

我这里使用的就是ngx_cache_purge-2.3。

编译安装ngx_cache_purge模块

使用nginx -V命令查看nginx是否已经安装了这个模块,如果没有安装,需要重新编译安装。

使用军哥lnmp一键安装包的同学,可以在lnmp的安装目录中找到lnmp.conf这个文件,然后在nginx模块中添加ngx_cache_purge。之后重新平滑升级nginx即可。

修改ngxin配置

在使用fastcgi_cache缓存之前,必须先修改nginx配置,具体就是进入虚拟主机配置中,找到domAInname.conf,然后修改里面的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里面,避免加了多次。server
    {
        listen 80;
        #请修改为自己的域名
        server_name zhangge.net;
        index index.html index.htm index.php default.html default.htm default.php;
        #请修改为自己网站的存放路径
        root  /home/wwwroot/domainname.com;
        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 WORDPRESS;
                fastcgi_cache_valid 200 301 302 1d;
        }
        location / {
                #此处可以添加自定义的伪静态规则(之前你新增的伪静态规则可以添加到这,没有就不用了)
                try_files $uri $uri/ /index.php?$args;
                rewrite /wp-admin$ $scheme://$host$uri/ permanent;
         }
        #缓存清理配置(可选模块,请细看下文说明)
        location ~ /purge(/.*) {
            allow 127.0.0.1;
            allow "此处填写你服务器的真实外网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 /home/wwwlogs/domainname.com.log access;

注意修改上述代码中的该修改部分,不然nginx重启会出错。当然,如果是启用了https,模块就应相应的改变。

安装Nginx-helper插件

在后台搜索nginx-helper,安装好插件。

关于插件的设置:

如果没有使用CDN就可以选择purge模式,如果使用了CDN最好选择文件模式。

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

解决的方法:在wp-config.php中增加一行代码:

define( 'RT_WP_NGINX_HELPER_CACHE_PATH','/tmp/wpcache');

这样,就配置好了。


上一篇:纯代码给WordPress网站添加独立下载页面功能

下一篇:WordPress站点SEO优化中需要避开6个常见错误

最新发布
国内vx小号购买,出售实名微信账号平台-实名认证微信小号

国内vx小号购买,出售实名微信账号平台-实名认证微信小号

国内vx小号购买,出售实名微信账号平台-实名认证微信小号
近年来,随着社交平台的快速发展,微信作为国内用户量最大的社交软件之一,其账号资源也逐渐成为一种“稀缺品”。购买推荐平台faka128.com [点击购买 24小自动发货]网址复制到浏览器打开访问购买-优惠 十年老店,品牌保障faka128.com尤其是在一些需要多账号运营的行业,如电商、营销推广、自媒体等,VX小号(即...
PPT自动播放怎么设置取消?PPT自动播放在哪里关闭

PPT自动播放怎么设置取消?PPT自动播放在哪里关闭

PPT自动播放怎么设置取消?PPT自动播放在哪里关闭
ppt自动播放怎么设置取消?很多从网上直接下载PPT模板的用户发现,下好的PPT模板都是自动播放的设置,那么对于自己不需要自动播放的话要怎么设置取消呢?一起来看看具体的取消方法吧。ppt自动播放怎么设置取消?1、PPT幻灯片建立完成后双击幻灯片图标进入到幻灯片界面中。2、单击PPT首页的空白位置进行幻灯...
PPT图片背景怎么设置为透明?PPT图片背景设置为透明的方法

PPT图片背景怎么设置为透明?PPT图片背景设置为透明的方法

PPT图片背景怎么设置为透明?PPT图片背景设置为透明的方法
在PPT中,将图片背景设置为透明可以为你的幻灯片增加一些特殊效果,使其与文本和其他图形元素更好地融合。透明背景的图片可以让你展示出更清晰、更专业的视觉效果。如果你想知道如何在PPT中将图片背景设置为透明,下面是一些简单的步骤供你参考。PPT图片背景设置为透明的方法第一步、插入图片步骤:挑选一张最佳...
WPS和PPT有什么区别?WPS和PPT的区别介绍

WPS和PPT有什么区别?WPS和PPT的区别介绍

WPS和PPT有什么区别?WPS和PPT的区别介绍
WPS和PPT是两种常见的办公软件,它们在功能和使用方面有一些区别,因此也适用于不同的用户需求和工作场景。无论是在学校、企业还是个人办公中,理解WPS和PPT之间的区别对于选择合适的工具至关重要,下面看看小编的文章你就会明白了。WPS和PPT的区别介绍一、软件功能相信这是大家关注最多的一个问题。pp...