首页 > 数据库 >WordPress开启Nginx Redis Cache缓存 解决FastCGI Cache内网穿透兼容问题

WordPress开启Nginx Redis Cache缓存 解决FastCGI Cache内网穿透兼容问题

时间:2023-06-23 19:57:23浏览次数:59  
标签:缓存 兼容问题 Cache cache set Nginx nginx 内网

本文转载自:WordPress开启Nginx Redis Cache缓存 解决FastCGI Cache内网穿透兼容问题

更多内容请访问钻芒博客:https://www.zuanmang.net

上回说到,Wordpress配合 Nginx FastCGI Cache缓存可以极大提升速度体验,但钻芒博客由于是通过Nginx反向代理所以使用起来纯在一定兼容问题,比如缓存无法刷新,缓存状态码换乱,私密文章前台也缓存了等等问题,通过测试,配合Redis缓存完美解决。猜测可能是文件配置在源服务器和代理服务器的Nginx中产生冲突,而Redis则不会。

教程开始:

和FastCGI缓存部署方法类似,在相应站点等配置文件内插入缓存位置信息和缓存配置信息即可。

以下教程配合宝塔面板使用,技术控部署逻辑同理。

第一步,配置服务器环境

1.1 安装Nginx OpenResty

为什么要用Nginx OpenResty?因为使用Redis cache缓存,需要给nginx配置四个模块:

srcache-nginx-moduleredis2-nginx-moduleHttpRedisModuleset-misc-nginx-module

OpenResty 介绍:

  1. OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。
  2. OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,更主要的是在性能方面,OpenResty可以 快速构造出足以胜任 10K 以上并发连接响应的超高性能 Web 应用系统。
  3. 360,UPYUN,阿里云,新浪,腾讯网,去哪儿网,酷狗音乐等都是 OpenResty 的深度用户。

因为宝塔的nginx openresty 默认集成了上边4个模块,所以我们没有别的因素影响直接切换到nginx openresty 即可。

%title插图%num

你可以用下边的命令查看当前Nginx是否安装了这几个模块。

nginx -V 2>&1 | grep 'srcache-nginx-module\|redis2-nginx-module\|redis-nginx-module\|set-misc-nginx-module' -o

1.2安装Redis

%title插图%num

第二步,配置站点信息

2.1 开启Redis缓存

打开网站 配置文件,在service上方插入如下代码,启用redis缓存:

upstream redis {    server 127.0.0.1:6379;    keepalive 512;    }

插入位置如图:(下边教程的 插入配置缓存 插入位置也在这张图里)

%title插图%num

2.2 插入配置缓存

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;}   #7B2主题专用---后台等特定页面不缓存(其他需求请自行添加即可)# if ($request_uri ~* "/wp-admin/|/wp-admin/*|/wp-json/*|/xmlrpc.php|wp-.*.php|/feed|/rss|/pay|/notify|/return|/download|/redirect|index.php|sitemap.xml|sitemap(_index)?.xml|sitemap.*.xml|sitemap.*.*.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-81.sock;    #81代表php8.1  修改成你站点使用的#上边这行php版本不一样请注意修改fastcgi_index index.php;include fastcgi.conf;    }    

2.3 配置插件

WordPress后台下载nginx-help插件

在第二个Caching Method选项选择Redis cache缓存

%title插图%num

配置完成,预览效果

%title插图%num

刷新缓存

如果出现发布或修改文章无法刷新缓存,可以后台安装Redis Object Cache这个插件配合刷新。(钻芒发现不使用这个插件也能自动刷新缓存,因转载来源大鸟博客推荐使用这个款插件,这里分享也提到一下,避免某些同学刷新缓存无果)

相关链接

宝塔面板WordPress – 用Nginx+Redis Cache缓存提速网站 – 大鸟博客 (daniao.org)

 

温馨提示:本文最后更新于2023-03-06 10:46:51,某些文章具有时效性,若有错误或已失效,请在下方留言或联系 钻芒博客

相关推荐:

 

标签:缓存,兼容问题,Cache,cache,set,Nginx,nginx,内网
From: https://www.cnblogs.com/zmki/p/17500078.html

相关文章

  • Linux安装samba服务,实现与windows及其其他设备内网共享文件
    SMB协议其实是微软的一个文件共享协议,即Windows上的文件共享就是这个协议,samba是在Linux上对其的开源实现,由于历史悠久很多桌面和手机的文件共享客户端软件都支持这个协议,所以用来内网共享文件是比较合适的,但是由于安全性的原因,外网还是使用其他协议,如webdav.具体安装方法......
  • [HTML 5] Back Forward Cache
     Blog:https://web.dev/bfcache/ bfcacheisanin-memorycachethatstoresacompletesnapshotofapage(includingtheJavaScriptheap)astheuserisnavigatingaway.Withtheentirepageinmemory,thebrowsercanquicklyandeasilyrestoreitifthe......
  • frp 内网到内网穿透
    下载frp_0.34.2_linux_amd64.tar到公网ECS和内网服务器 一、公网ECS做为服务端1.1解压文件到/usr/local/frps1.2修改/usr/loacl/frps/frps.ini内容如下:[common]bind_port=7000  #服务端口dashboard_port=8510  #监控界面端口dashboard_user=userabc #监控......
  • LVM Cache
    一、LVMCach1、什么是LVMCache?LVM(LogicalVolumeManager)是一种用于在Linux系统上管理硬盘分区和逻辑卷的工具。LVM允许管理员对物理硬盘进行逻辑划分,创建灵活的逻辑卷,并提供高级功能,如快照、在线容量扩展和逻辑卷的动态迁移等。LVMCache是LVM的一个功能,它允许将......
  • 百度内网《Android车载操作系统开发指南》惨遭泄漏,24小时删!!!
    软件定义汽车背景下,操作系统是汽车生态发展的灵魂。随着汽车电动化、智能化、网联化的发展,汽车操作系统已经成为车辆中重要的组成部分之一,一定程度上决定了车辆的安全性、舒适度、智能化水平和整体性能。而Android系统开源、免费应用资源多、应用UI/Lunch、操控等人机交互开发,易定......
  • 外网用户通过域名访问内网服务器配置
    ......
  • SpringBoot整合Cache缓存深入理解
    我们在上一篇的基础上继续学习。SpringBoot整合cache缓存入门一、@Caching注解@Caching注解用于在方法或者类上,同时指定多个Cache相关的注解。属性名描述cacheable用于指定@Cacheable注解put用于指定@CachePut注解evict用于指定@CacheEvict注解示例代码如下:importcom.example.mys......
  • [20230616]One Deadlock of 'row cache lock' and 'library cache lock'.txt
    [20230616]OneDeadlockof'rowcachelock'and'librarycachelock'.txt--//链接http://ksun-oracle.blogspot.com/2023/06/one-deadlock-of-row-cache-lock-and.html演示一个有趣的测试.--//他测试采用cluster表,我估计普通表这样操作不会出现这样的情况,先重复作者的测试看......
  • SpringBoot整合cache缓存入门
    目的:缓存可以通过将经常访问的数据存储在内存中,减少底层数据源如数据库的压力,从而有效提高系统的性能和稳定性。一、启用缓存@EnableCaching 我们需要在启动类上添加注解@EnableCaching来开启缓存功能。 示例代码如下:importorg.springframework.boot.SpringApplication;impor......
  • 内网、外网和DMZ的防火墙保护程度排序和辨析
    标题:内网、外网和DMZ的防火墙保护程度排序及举例说明引言在网络安全中,防火墙是一种重要的安全设备,用于保护网络免受未经授权的访问和攻击。防火墙通常根据网络的布局和安全需求,将网络划分为内网、外网和DMZ(区域)三个区域,并为每个区域提供不同程度的保护。本文将按照受保护程度从......