Wordpress优化:网站用nginx前端缓存+Redis Cache缓存提速网站

news/2024/5/16 17:08:25/文章来源:https://blog.csdn.net/weixin_45498172/article/details/109244191

本问转载:https://www.src1024.com/xy/seo/31780.html

新手站长搭建网站一般为了省钱没去选择大厂的云服务器,而小厂的服务器虽然便宜,但是访问速度也很感人,同时如果你用的是Wordpress建站程序,如果不做优化,那么速度将会更感人。利用宝塔面板和wordpress来搭建网站还是很容易的,但是搭建网站容易,想要访问快却不容易。有些小伙伴总是问,宝塔面板打开很快,但是我的网站访问却很慢。宝塔面板访问快,肯定是利用了缓存来加速,你的网站访问慢,额,配置,带宽,都是慢的原因,但是最重要的可能是没有配置缓存。

应该以前都讲过很多配置缓存的文章,基本都是基于宝塔面板和wordpress来说的,当然如果利用宝塔面板来安装wordpress,最快捷的方式就就是安装WP-Super-Cache,或者用 WP-Rocket 但是 WP-Rocket是收费的,前者是免费的。

如果想省钱又省事的话,那么WP-Super-Cache更安心点,加上Autoptimze基本上也有明显提升。其他的还有很多插件比如;WP Fastest Cache、W3 Total Cache、cos-html-cache、Cachify……总得来说,安装了缓存插件后提速还是有效果的,但是也带来了不少的问题。例如配置复杂、生成规则、插件冲突以及无法应对突发流量,也就是说使用缓存插件还是无法达到应对大流量冲击的情况。

当然还有多方式,站长本身的服务器很渣,为了提高速度,目前还是采用了Nginx前端缓存。如果你也是一个毕竟渣的服务器,那么你也可以参考下》

那利用Nginx fastcgi_cache缓存,直接使用Nginx为页面生成缓存来加速wordpress,而且还支持html伪静态页面,效率比使用PHP缓存插件要高得多,也比较适合小配置的VPS上使用。

一、安装Nginx ngx_cache_purge模块

目前本教程是基于宝塔面板来讲的这个教程,宝塔面板很贴心的给我们编译好了这个模块,如果你不放心,可以用命令来查看一下。

nginx -V 2>&1 | grep -o ngx_cache_purge

查看ngx_cache_purge是否安装,没有数据表示未安装

我们输入命令之后,结果如图:

二、Nginx开启fastcgi_cache缓存-配置实例

既然编译好了模块,要用这个缓存功能,我们就需要配置www.src1024.com.conf这个文件,很好找。

/www/server/panel/vhost/nginx/www.src1024.com.conf

也可以直接去面板找到「网站」-「设置」-「配置文件」

2.1配置实例

下面我直接贴出www.src1024.com的Nginx 开启 fastcgi_cache缓存配置实例,详细的说明如下:

[wm_login]

#下面各个参数的含义请自行百度!

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

listen 443 ssl http2;

    server_name www.src1024.com src1024.com;

    index index.php index.html index.htm default.php default.htm default.html;

    root /www/wwwroot/www.src1024.com;

 

    #start

    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-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 "45.154.199.50";

            deny all;

            fastcgi_cache_purge WORDPRESS "$scheme$request_method$host$1";

        }

        #end

#以下内容以默认网站原来设置……

[/wm_login]

关于sock,宝塔面板的在/www/server/php/74/etc/php-fpm.conf中有配置路径宝塔面板的sock,如果不清楚,可以自己打开看下,然后复制到需要修改的地方就可以了。

注意:这个74表示你的PHP版本,如果是PHP7.2改成72,同理……

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,否则可以设置时间大一些。

请仔细阅读代码中的所有注释,该修改的修改,该创建的创建,该补充的根据实际情况补充,额,基本没什么问题的,宝塔面板的直接复制粘贴就可以了。

三、安装Nginx Helper插件

配置好了fastcgi_cache缓存之后,我们需要安装插件, fastcgi_cache 有一个量身定做的 WordPress 缓存清理插件:Nginx Helper。这个插件不定时更新,而且更新的很频繁。安装这个插件 ,非常简单,直接进入 WordPress 后台插件安装界面搜索 Nginx Helper 关键词在线安装即可。

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

首先是开启purge,然后我们选择nginx Fastcgin cahe,因为就我们用就是这个缓存。之后选择Delete local server cache files。当然第一个也可以用,但是一般推荐用Delete local server cache files因为每个服务器的环境都不一样,缓存路径也会不尽相同就会导致插件无法找到缓存文件并删除!

插件还提供了其它的一些设置,功能非常丰富,例如发表新文章、新评论时是否更新Nginx缓存等。

额,一般默认的就可以的选项就可以了,如果看不懂可以用谷歌浏览器翻译下。

下图是「大鸟」大神的配置,可以参考

3.1清理模式选择

清理模式还需要仔细说下。

①、purge 模式

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

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

②、文件模式

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

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

3.2解决办法

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

//根据实际情况定义缓存的存放路径

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

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

如果全部设置好,改保存的保存,改重启的重启,等等!

四、Nginx fastcgi_cache效果预览

启用了Nginx fastcgi_cache后,我们就可以在浏览器Header 头部信息中看到已经命中了。

对于已经设置了不缓存的页面,Nginx fastcgi_cache会直接显示BYPASS,我们如果是登录状态那是不显示缓存的,如图:

同时,我们服务器的缓存路径中也能看到Nginx fastcgi_cache生成的缓存文件。

如果你发现你的评论过的用户依然用的是缓存,那应该是WP没有记住cookie,把以下代码加入到functions.php中即可。

add_action('set_comment_cookies','coffin_set_cookies',10,3);

function coffin_set_cookies( $comment, $user, $cookies_consent){

  $cookies_consent = true;

  wp_set_comment_cookies($comment, $user, $cookies_consent);

}

五、总结

Nginx开启fastcgi_cache缓存对于加快网页响应速度以及节省服务器资源有着非常重要的意义,下图是其他大神在alibabacloud.com的测试结果,可以看出来启用缓存后服务器的承载能力有了非常大的提升。

5.1 细节调整

启用fastcgi_cache缓存时,发现在Nginx配置文件中添加了Cache-Control信息,但是总是不生效。HTTP头部信息会总会包含以下信息:

Cache-Control: no-store,no-cache,must-revalidate,post-check=0,pre-check=0 和 Pragma: no-cache,

经过排查,问题出在了宝塔面板中的session.cache_limiter的PHP.ini设置部分, 默认值是nocache,我们需要将它设置为none即可。

5.2 X-Powered-By

我们用宝塔面板会默认的出现X-Powered-By 7.2.12 出现php的版本信息,从安全角度来说还是很不友好的。X-Powered-By是网站响应头信息其中的一个,出于安全的考虑,一般会修改或删除掉这个信息。

#php7.4 默认关闭

宝塔面板里我们如何修改呢:PHP.ini设置expose_php = off

设置好之后,我们重载php服务。

利用宝塔面板给WordPress开启Nginx fastcgi_cache缓存加速方法就说完了,如果有什么疑问可以留言,说实话利用宝塔面板来搞这个Nginx fastcgi_cache缓存加速还是非常方便的。喜欢折腾的小伙伴赶紧试试。

其实,Nginx Helper还支持redis cache模式的缓存,也是非常不错的!

Nginx Helper真的是非常强大,关键是这么强大的插件还是免费的。

最后:友情提示,如果我们勾选Enable Nginx Timestamp in HTML 你在查看网页源代码的时候会发现一些信息如图:

如果你不需要这些信息,可以选择关闭。

本文参考:大鸟博客

本文来源:1024资源网

更多建站、小程序问题可以直接加站长QQ,站长长期出售多商户系统app/小程序/PC源码 无任何加密,支持PHP7.4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_701070.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

B2B2C网站系统建设的常见误区

随着网络的高速发展,极大的改变了人们的购物消费行为习惯,因此也带动电子商务的发展,很多传统企业想选择转型却对B2B2C网站系统缺乏一定的了解。那么接下来就为大家讲讲B2B2C网站系统的在建设过程中所遇到的常见误区。 1、B2B2C网站系统建设没…

html酒鬼酒网站制作,酒鬼酒

酒鬼酒建立相应的自救技术.随着科学技术的发展,对多种防护措施必将发挥更好的作用,更好的防护措施也不例外,本文通过对其中的几种防护措施进行研究和设计,提出适合渔民使用和经常处于温度-水位-泥质环境的传…

精心分享7个让你意想不到的网站,大开眼界!

精心给大家分享7个你意想不到的网站,每一个都让人惊喜,反正小智是爱上了,直接上干货! 1、万有导航 万有导航是一个全能实用的导航网站,聚合了超多不同类型的站点。 比如影音娱乐、资源搜索、在线办公、设计必备、媒体…

这7个实用工具类网站,你用过几个?

作为一个工具狂,搜罗了超多好用的工具网站,今天给大家分享7个实用的工具类网站,可以解决大家很多问题,堪称效率提升利器。 1、UU在线工具 工欲善其事必先利其器,UU在线工具是一个工具聚合网站,里面聚合了文…

精心推荐10个高质量的网站,打开新世界的大门

这道题小互会,作为一个工具控,浏览器收藏夹藏着500多个网站,对网站有非常深入的研究。今天小智给大家分享10个高质量的网站,可以解决很多问题,直接上干货! 1、Convertio Convertio是一个高质量的文件转换器…

强烈推荐8款高质量的网站,可以解决很多问题

推荐8个非常实用的网站,可以解决很多问题,每一个都是精心挑选的,喜欢的话记得点个赞哦~ 1、USEUM USEUM是一个免费的艺术品下载网站,网站聚合了六所著名的博物馆,放了共计21578幅艺术作品的高清扫描图像。有详细的作…

分享15款堪称神器却鲜为人知的软件和网站

分享15款堪称神器的软件和网站,可以解决很多问题! 1、今日热榜 今日热榜是一个高质量的追热点工具,聚合了大量网站的热榜,包含综合类、科技类、娱乐类、社区类、购物类、财经类、大学类、日报类、地方门户类、影视类、阅读类、游…

大型网站技术架构设计

作为一名后端开发程序员,非常希望自己能够从 0 到 1 地参与到一个项目中,特别是像淘宝这个量级的项目。但是在职业生涯中,能够有幸参与到这样项目中的人寥寥无几。正好最近看到一篇文章,作者以淘宝作为例子,讲述服务端…

值得总结!认真安利7个让人眼前一亮的神仙软件和网站!

分享7款我常用的办公工具,可以解决很多需求,喜欢的话记得点赞支持哦~ 1、uTools uTools是一个极简、插件化、跨平台的桌面软件,你的生产力工具集,通过自由选配丰富的插件,打造你得心应手的工具集合,当你熟…

强烈推荐7个让人惊艳的宝藏实用网站,太好用了

作为一个收集了上百个网站的工具控,今天小智给大家分享7个实用强大的网站,每一个都堪称精品,直接上干货! 1、CreativeMass CreativeMass是一个高质量的精选创意导航网站,里面聚合了超多实用的网站。 比如营销类、设计…

最新发现6个高质量网站,让人眼前一亮!

推荐6个能让我一直收藏的网站,每一个都让人大开眼界。 1、全历史 这是一个能让你看一天的网站。全历史可以说是历史百科全书,全世界的历史都在里面,以图文并茂的形式显示。全历史以一种连贯的视角来见证时代变迁,把看似孤立的历…

仅看一眼就收获满满的7个神器网站,拿走不谢!

推荐7个让我相见恨晚的实用网站,可以解决很多需求,喜欢的话记得点赞支持哦~ 1、重现化学 重现化学是一个由美丽科学与中国化学会的合作项目,是“美丽化学”项目的续作,目前包含15部精美影片和数百张精美图片,更多影片…

7个强大实用网站,我收藏了这么久,希望对你有帮助!

推荐7个强大好用的免费网站,可以解决很多需求,如果你觉得这期内容还不错的话,记得点赞和加关注哦~ 1、EGOUZ EGOUZ网站是一家独具特色的推荐和分享国内外知名、实用、高质量的网址站点,网站收录了57个国家的1万多个知名网站&…

推荐8个值得每天一看的网站,值得收藏起来!

给大家推荐8个值得每天一看的网站,可以解决很多问题,话不多说,直接上干货! 1、ewant ewant是由国立交通大学、上海交通大学、西安交通大学、西南交通大学、北京交通大学共同合作发起的开放教育平台,于2013年成立于国…

7个珍藏多年的网站,颠覆你的想象,值得收藏起来!

好用的网站非常多,我给大家分享7个珍藏多年,不舍得分享的网站。再不舍得,也要分享给大家,喜欢的话记得点赞支持哦~ 1、全历史 全历史是一款历史查看工具,以时空关系为表达特性来向用户呈现历史知识,具有历…

值得总结!推荐10款超实用的神级办公网站和软件,效率翻倍

给大家分享10款办公必备的软件和网站,每一款都让你大开眼界,全是实用派,可以极大提高办公效率,解决超多痛点需求。 1、uTools uTools是一个非常强大的生产力工具箱软件,它自由集成了丰富的插件,可以快速匹…

值得分享!它们才是真正的宝藏网站,让人惊艳

推荐7个非常不错的良心网站,可以解决大家很多问题,每一个都让人惊艳,喜欢的话记得点赞支持哦~ 1、搜图导航 搜图导航是一个非常强大的图片聚合和设计资源导航网站,提供一站式快速搜索图像服务。还有自定义导航和快捷搜索功能。 …

放大招,推荐10个神级办公软件和网站,让人大开眼界!

1、Snipaste Snipaste是出色的截图贴图软件。Snipaste截图非常强悍,截图快捷键是F1,贴图快捷键是F3。 第一个特点就是截图精确智能。Snipaste可以检测窗口及元素,方便快速捕捉单一窗口。Snipaste自动检测元素功能非常精确,它可以…

推荐7个最新发现的神仙网站,让人心动!

1、云海电子图书馆 云海电子图书馆是一个免费下载电子书的网站,包含经济管理,小说文学,艺术摄影,计算机网络,英语和其它外语,传记等书籍。 2、智办事 智办事是一款以目标为导向,以人为中心&am…

认真推荐8个功能强大的实用网站,备受好评!

1、MSDN,我告诉你 MSDN,我告诉你网站提供正版windows系统下载。现在网络上有很多一键重装系统的软件,不建议大家使用这种软件,虽然装系统方便,但是可能存在捆绑和广告甚至死机等问题。 MSDN,我告诉你网站相…