首页 > 系统相关 >宝塔Nginx开启fastcgi_cache分别缓存WordPress移动和pc端

宝塔Nginx开启fastcgi_cache分别缓存WordPress移动和pc端

时间:2024-09-27 16:01:48浏览次数:1  
标签:缓存 header cache pc Nginx fastcgi

FastCGI_cache是Nginx的缓存模块,能够从Nginx层面实现网页静态化,有效提高网站的并发能力、减少PHP运行时间和请求响应时间,大大提升页面加载速度。Fastcgi_cache能够直接在nginx层面提供缓存内容,而无需涉及PHP或WordPress,在没有第三方广告情况下加速效果很不错!网上不少此教程,但是没分开缓存pc端与移动端,经过折腾实现了pc移动端分开缓存,那么宝塔Nginx如何启用fastcgi_cache分别缓存wp移动pc端?下面77生活网来为大家讲解一番吧,给大家一些参考。

Nginx如何启用fastcgi_cache缓存

宝塔面板默认编译了Nginx ngx_cache_purge 模块,无需额外安装,直接按下面教程操作即可。

全局设置

1登录宝塔后台,在软件商店找到Nginx,点击设置按钮,在“配置修改”里添加以下内容:

fastcgi_temp_path /tmp/cache/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;
       #区分pc和mobile
       map $http_user_agent $mobile {
           default         0;
           ~*mobile        1;
       }
       fastcgi_cache_path /tmp/cache/pc levels=1:2 keys_zone=pc_wpshwcache:64m inactive=1d;
       fastcgi_cache_path /tmp/cache/mobile levels=1:2 keys_zone=mobile_wpshwcache:64m inactive=1d;

网站设置

在宝塔后台网站列表中找到相应网站,点击“设置”按钮,将以下代码添加到配置文件中,56行代码要按需调整。

set $skip_cache 0;
#区分pc和mobile判断
    set $cache_zone pc_cache; #keys_zone值
    if ($mobile) {
        set $cache_zone mobile_cache; #keys_zone值
    }
#post 访问不缓存
if ($request_method = POST) {
	set $skip_cache 1;
}   
#动态查询不缓存
if ($query_string != "") {
	set $skip_cache 1;
}   
#后台等特定页面不缓存(其他需求请自行添加即可)
if ($request_uri ~* "/wp-admin|/wp-.*.php|index.php|sitemap(_index)?.xml|sitemap.txt|sitemap.xml|sitemap.html|tag.txt|sitemap([0-9]+)\.txt|sitemap([0-9]+)\.xml|tag([0-9]+)\.txt") {
	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;
        include pathinfo.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 $cache_zone;
        add_header Cache-Control  max-age=0;
        add_header Last-Modified $date_gmt;
        add_header Nginx-Cache "$upstream_cache_status"; #是否命中代理缓存
        add_header X-Frame-Options SAMEORIGIN; # 只允许本站用 frame 来嵌套
        add_header X-Content-Type-Options nosniff; # 禁止嗅探文件类型
        add_header X-XSS-Protection "1; mode=block"; # XSS 保护
        fastcgi_cache_key "$scheme$request_method$host$request_uri";
        fastcgi_cache_valid 200 301 302 30m;
    }

添加完后保存,重启Nginx,缓存就加好了。

判断缓存状态

使用浏览器隐身模式打开网站前台(未登录状态),按 F12 进入开发者工具 > “网络” > 点网址> 点“标头”查看详情。

HIT:缓存成功

MISS:缓存失败,建议刷新页面2次看下有没有变成HIT。

BYPASS:跳过缓存

EXPIRED:缓存过期

标签:缓存,header,cache,pc,Nginx,fastcgi
From: https://www.cnblogs.com/77shwcom/p/18435953

相关文章

  • 三维点云使用pcl实现RANSAC平面分割
    小白每日一练!点云分割分割是将点云划分为多个部分的过程,每个部分代表不同的物体或表面。在这里,我们使用RANSAC算法来识别和分离平面。(以ModelNet40为例)完整代码放在最后面啦!!测试好了可以直接使用!!RANSAC算法RANSAC算法是一种用于从一组包含异常数据的观测数据中估计数学模......
  • 一文读懂Ingress-Nginx以及实践攻略
    一文读懂Ingress-Nginx以及实践攻略目录1概念1.1什么是Ingress?1.1.1主要功能:1.2Ingress的组件1.3什么是ingress-nginx1.4ingress-nginx优点和限制1.5版本兼容性矩阵2实践:Ingressnginx部署2.1使用helm部署ingress-nginx2.1.1安装和配置Helm2.1.2配置和......
  • PCB是层数越多,性能越高吗?
    PCB,即印刷电路板,是电子设备中不可或缺的微型支撑平台,它为集成电路提供了稳固的安装基础。随着技术的进步,多层PCB板的设计使得在有限的空间内集成更多复杂的电路成为可能,同时也在一定程度上降低了电路布局的复杂性。然而,有一种普遍的观点认为PCB的层数越多,其性能就越优越,这种......
  • 易优CMS模板文件不存在:./template/pc/index_tags.htm-eyoucms
    当你在使用易优CMS或其他类似的CMS系统时,如果遇到“模板文件不存在:./template/pc/index_tags.htm”的提示,这意味着系统试图加载的标签(tag)首页模板文件不存在。为了解决这个问题,你需要手动创建这个模板文件,并根据需要进行相应的配置和修改。具体步骤确定模板文件路径确认模......
  • 2024 CCPC网络赛复盘
    补题链接:https://codeforces.com/gym/105336名次:103赛时:BCDEGIJKL(9题)赛后:F首先是OMS与PTA的保留节目:爆炸去年是新版OMS闪退,今年是直接塞爆进不去。教室一片骚动,不过既然比赛已经开始了,那就可以动键盘,先敲几个板子再说。我上来先敲最黑盒的网络流,小武过来敲了个fhq......
  • 前端使用webpack本地实现编译时出现错误[cached] 1 asset ERROR in main Module not
    一:概述Webpack是一个现代JavaScript应用程序的静态模块打包工具。它主要用于将JavaScript代码、CSS、图片等资源模块化管理,并最终打包成一个或多个文件,方便在浏览器中使用。以下是对Webpack的详细介绍:主要特点模块化:Webpack支持ES6模块、CommonJS和AMD模块,能够将各种......
  • The 2022 ICPC Asia Nanjing Regional Contest
    目录写在前面I签到G贪心,模拟D二分答案,枚举A枚举,结论,二维前缀和BDP,枚举M计算几何,枚举,大力讨论写在最后写在前面补题地址:https://codeforces.com/gym/104128。以下按个人向难度排序。SUA什么牛逼提妈的又被斩杀了,wenqizhi大爹一个人爆切三道我和dztlb大神两个人分别在......
  • 基于jspcs框架会员健身管理系统的计算机毕设源码+论文
    健身房会员管理系统的设计与实现00001[摘要] 随着社会经济的日益繁荣,人们的经济收入日渐提高,人们的健身意识也不断加强,健身房作为专业的健身服务行业,已经越来越受到人们的亲睐。随着自身的规模不断扩大,客户数量的增多,传统的管理模式已不能适应现代健身机构的发展趋势,出于更好地......
  • NGINX 代理grafana-server
    一、grafana修改配置在root_url后边添加路径/grafana(该路径可自定义,和nginx配置中保持一致即可)vim/etc/grafana/default.ini#后缀与nginx代理后缀保持一致root_url=%(protocol)s://%(domain)s:%(http_port)s/grafana#允许跨域allowed_origins=*#允许iframe嵌入all......
  • vue项目部署到nginx后一刷新页面就404
    在Vue项目部署到Nginx服务器上时,遇到刷新页面显示404的问题,通常是因为Nginx无法正确地处理Vue路由。Vue应用的路由是前端路由,依赖于JavaScript来动态解析URL,当直接访问除根路径外的URL时,Nginx默认会尝试在服务器上找到对应的文件或目录,如果找不到就会返回404错误。为了解决这个问......