我们用nginx-help插件的时候有两个缓存模式:nginx Fastcgi cache和Redis cache。网上一般都是如何启用nginx Fastcgi cache缓存,但是基本没人说如何开启Redis cache。
但是如果我们想用Redis cache缓存,还是不太容易的,我们需要给nginx配置四个模块:
srcache-nginx-module redis2-nginx-module HttpRedisModule set-misc-nginx-module
额,如何安装扩展就暂时先不说了,不过,我们用宝塔面板的话可以切换nginx openresty,这个牛叉的东东默认集成了以上4个模块,OpenResty 介绍:
- OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。
- OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web 应用系统。
- 360,UPYUN,阿里云,新浪,腾讯网,去哪儿网,酷狗音乐等都是 OpenResty 的深度用户。
这篇文章我们就来谈谈宝塔面板安装wordpress之后如何启用Nginx+Redis Cache缓存来提速你的额网站:在学习本文之前,你需要了解:
一:准备
我们如果用nginx那必须要安装上面提到的4个模块,当然,如果你觉得麻烦可以快速切换Nginx openresty。使用命令来确认nginx中是否安装了以上4个模块,在ssh中输入:
nginx -V 2>&1 | grep 'srcache-nginx-module\|redis2-nginx-module\|redis-nginx-module\|set-misc-nginx-module' -o
返回结果,如图:
四个模块配置完之后,你好要安装Redis,当然了宝塔面板来安装redis,还是截图吧:
这里都设置好了之后,如果你的站点没有安装Wordpress,那么自己新建一个站点安装wordpress吧。
二:配置
前面的工作都做好了之后,我们开始给自己的网站部署Nginx+Redis Cache缓存,这个相比较Nginx fastcgi_cache缓存来说大鸟觉得要简单不少。我们需要在nginx配置文件(网站配置文件)中部署如下代码:
upstream redis { server 127.0.0.1:6379; keepalive 512; }
之后,在配置文件的中在配置,如下的代码:
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 /redis-fetch { internal ; set $redis_key $args; redis_pass redis; } location /redis-store { internal ; set_unescape_uri $key $arg_key ; redis2_query set $key $echo_request_body; redis2_query expire $key 14400; redis2_pass redis; } location ~ [^/]\.php(/|$){ set $key "nginx-cache:$scheme$request_method$host$request_uri"; try_files $uri =404; srcache_fetch_skip $skip_cache; srcache_store_skip $skip_cache; srcache_response_cache_control off; set_escape_uri $escaped_key $key; srcache_fetch GET /redis-fetch $key; srcache_store PUT /redis-store key=$escaped_key; more_set_headers 'X-Cache $srcache_fetch_status'; more_set_headers 'X-Store $srcache_store_status'; add_header X-Cache "$srcache_fetch_status From $host"; add_header X-Frame-Options SAMEORIGIN; # 只允许本站用 frame 来嵌套 add_header X-Content-Type-Options nosniff; # 禁止嗅探文件类型 add_header X-XSS-Protection "1; mode=block"; # XSS 保护 fastcgi_pass unix:/tmp/php-cgi-72.sock; #这里php版本不一样请注意修改 fastcgi_index index.php; include fastcgi.conf; }
额,估计很多人看不懂,我贴一份全的,你们对比这看,该修改的地方自己修改:
三:配置插件
上面的代码配置好之后,我们开始下载一个神器nginx-help,在wordpress后台搜索安装,这个真是个神器,作者还会不定时的更新一下。因为这里的设置也是和Nginx fastcgi_cache缓存是一样的,所以大鸟这里就贴图吧:首先是Enable purge→Redis cache→Redis settings默认接口,除非你要修改为别的端口:
这里设置完,接着往下走设置Purging conditions,看图:
这样设置完之后,我们保存即可。
四:效果
上面的一顿猛如虎的操作完成之后,开始测试效果了,我们打开测试网站F12:
缓存已经生效了,如果我们登录状态的话,缓存应该是不生效的看图:
额,当然了,这样还是有点问题的,我们发表文章的时候,不能立即更新,就算是刷新Purge Cache也没效果,所以你还得配合一个插件【Redis Object Cache】后台搜索安装。安装启用之后就可以管理Redis缓存,如图:
点击Flush缓存就可以刷新缓存了,之后就可以看到你最新发表的文章了。
五:总结
整个来说配置起来比Nginx fastcgi_cache要简单,而且Redis 缓存的优点也不用多做介绍了,总之就是很强大。
但是配置起来门槛还是有点高,动手能力不强的就不要乱折腾了。以上就是nginx-help自带的Redis cache的缓存功能开启的全部过程!
本文参考:
https://www.mf8.biz/nginx-redis-cache-make-wordpress-fast/
https://easyengine.io/wordpress-nginx/tutorials/single-site/redis_cache-with-conditional-purging
61F
学习一下
62F
终于找到个简单的了
63F
为啥看不到隐藏内容
64F
来看看大佬然后优化wordpress
65F
来看看大佬然后优化wordpress
66F
大鸟博主多站点共存报错,何解啊
67F
为了查看隐藏内容
68F
感谢分享
69F
学习一下
学习一下
70F
我来看看!!!
71F
学习一下
72F
感谢分享。。。
73F
ceee感谢分享。。。
学习一下
74F
学习一下,希望有用
75F
学习一下隐藏文件格式
76F
学习一下 感谢大佬
77F
感谢教程,非常实用
78F
感谢教程,非常实用
79F
我使用后网站404报错
80F
怎么自动退出了呢再来看看
81F
我怎么老是miss
82F
学习大佬新思维
83F
大鸟网站,每天必看。跟着大佬走
84F
大鸟,如果我的redis设置了密码,php配置文件怎么填写密码呀
85F
很不错,我也试试看看
86F
为啥不显示内容