宝塔面板开启nginx Fastcgi_cache缓存为wordpress提速

编程之家收集整理的这篇文章主要介绍了宝塔面板开启nginx Fastcgi_cache缓存为wordpress提速编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

说到wordpress的缓存,大家想到的肯定是 WP-Super-Cache 的静态HTML缓存,以及 memcached 或 redis 动态缓存,插件的缓存效果肯定是有的,但是容易出现各种问题,比如配置很复杂、配置全英文插件间的冲突等,所以今天我要教大家一个更高级的缓存:Nginx fastcgi_cache缓存,直接在Nginx层面缓存页面,还支持缓存伪静态!效果比起传统的PHP缓存好得太多了,因为很多人使用宝塔面板,所以今天的教程是基于宝塔面板的教程。

全局设置

现在我们开始配置Nginx,来到宝塔后台,在软件商店找到Nginx,点击设置按钮,在配置修改添加以下内容

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;

网站设置

在宝塔后台的网站列表中,找到你的网站,并且点击设置按钮,将以下代码添加配置文件中去:

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了!如果你的网站使用PHP7.4,就写-74.sock
location ~ [^/]\.PHP(/|$)
{
    try_files $uri =404;
    fastcgi_pass unix:/tmp/php-cgi-74.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";
}

添加好之后,重载Nginx设置,缓存就加好了,

按 F12 开启开发者工具,在未登录的情况下访问网站首页,查看文件头,如果出现 HIT 则是缓存了,BYPASS 则是因设置原因未缓存,MISS 即这个页面还没被缓存,新发布或刚被删除页面,首次访问将出现这个状态,如图所示:

缓存命中!

总结

以上是编程之家为你收集整理的宝塔面板开启nginx Fastcgi_cache缓存为wordpress提速全部内容。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给好友。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

wordpress相关文章

开发主题时使用了wordpress的缓存函数,如下所示代码,但是在打印缓存时,怎么显示的都是false,经过查找才了解到。默认情况下,对象缓存是非持久的。这意味着存储在缓存中的数据仅在请求期间驻留在内存中。除非您安装持久缓存插件,否则缓存数据不会在页面加载时持久存储。就这个意思,想持久就需要找个插件装上。function get_term_post($term_id){if($term_id &l
在 WordPress 主题和插件开发中,条件判断标签(Conditional Tags)是非常重要的,通过条件判断标签,我们可以判断各种情况,从而使用对应的代码等。例如在顶部导航条中有一个“首页”选项,在首页的时候需要设置成高亮,我们可以在头部导航模板文件(header.php)中使用条件判断标签 is_home() 来判断当前页面是不是首页,然后再输出高亮的 class。这类的条件判断标签一般
新版的 wordpress6.1 已经将小工具也改成古腾堡的吧,若是以后站长或者开发者还想使用wordpress那么必须向这方面靠拢啦,尽管你不情愿,不过一段时间内我们还是可以先禁用的,下面是禁用的方法。直接用代码禁用将下方代码放到function.php中,即可屏蔽掉小工具的区块模式add_action('after_setup_theme', function(){remove_theme_s
做 WordPress 开发时,需要通过后台设置的某个自定义分类法 ID 获取该分类的链接,传递 ID 的变量给 get_term_link()函数时,却无法获取该分类的链接。通过查找资料获悉是由于 get_term_link()函数和其它常用的 wordpress 函数不同,该函数不能自行转换变量类型,解决方法是先把字符类变量转换成整数变量才可以正常获取链接。$id = intval($getI
WordPress临时APIset_transient(), get_transient(), delete_transient()这个函数类似于用于存储检索选项数据库表单的get_options()以及update_options()函数。 他们的主要区别在于,你可以给这个临时API函数传递一个时间参数,作为数据库输入的过期日。当参数显示的时间到达之后,输入会被移除。如果你需要缓存数据或查询某个
WordPress能让你自定义URL结构。为您的链接提高美感、可用性和前向兼容性。 优化SEO ,提高收录,这是非常必要的一个环节
WordPress阅读设置 ,这是一个基本的设置详细描述 标签1 :设置网站首页是显显最新文章列表,还是一个静态页面
写文章时,所上传的媒体文件都会存储到媒体库。 而在媒体库里上传的媒体文件也是可以在写文章时,随时插到文章中的。