宝塔面板开启Nginx缓存为网站提速

devtools/2024/9/23 9:29:47/

fastcgi_cache_0">fastcgi_cache介绍

Nginx默认自带的fastcgi_cache模块能把动态页面缓存起来,提高网站速度和降低服务器负载。

当有用户请求相同的页面时,Nginx可以直接返回缓存的页面,而不需要再次访问后端服务器。

这个模块可以通过简单的配置实现,还支持缓存伪静态!效果比起传统的php缓存好得太多了.

Nginx配置

来到宝塔面板后台,找到Nginx,在配置修改中添加以下内容:

fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:20m max_size=512m inactive=8h;
fastcgi_cache_key "$scheme$request_method$host$request_uri$arg_id";
fastcgi_cache_use_stale error timeout updating http_500;

这段配置用于 Nginx 的缓存设置:

  • /var/cache/nginx缓存文件存储目录。
  • levels=1:2:两层目录结构。
  • keys_zone=my_cache:20m:创建 20MB 内存区域 my_cache 存储缓存键和元数据。
  • max_size=512m:最大缓存大小为 512MB,达到后会删除旧缓存
  • inactive=8h:8小时后认为缓存条目不活跃,可能被清除。

赋予权限:

sudo chown -R www-data:www-data /var/cache/nginx
sudo chmod -R 755 /var/cache/nginx

站点配置

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

#启用fastcgi_cache 开始location ~ \.php$ {try_files $uri =404;
fastcgi_pass unix:/tmp/php-cgi-74.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_buffers 16 16k;
fastcgi_busy_buffers_size 64k;
fastcgi_buffer_size 32k;
fastcgi_keep_conn on;#新增的缓存规则
add_header X-Cache "$upstream_cache_status From $host";
fastcgi_cache my_cache;
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 保护
etag on;
fastcgi_cache_valid 200 301 302 6h;
}#启用fastcgi_cache 结束

注意: 假如你用的是php7.2版本,那么把

fastcgi_pass unix:/tmp/php-cgi-74.sock;

改成

fastcgi_pass unix:/tmp/php-cgi-72.sock;

全部配置好之后,别忘了重载Nginx设置生效,缓存就加好了

判断缓存状态

F12 访问网站首页,查看文件头,

如果出现HIT则是缓存了,
BYPASS 则是因设置原因未缓存
MISS即这个页面还没被缓存,新发布或刚被删除的页面,首次访问将出现这个状态,如图所示:

清理缓存

将以下代码添加到面板定时任务即可(shell脚本)

#!/bin/bash# Path to the nginx cache directory
NGINX_CACHE_PATH="/var/cache/nginx"# Function to clear the nginx cache
clear_cache() {echo "Clearing nginx cache..."sudo rm -rf $NGINX_CACHE_PATH/*echo "Nginx cache cleared."
}# Function to reload nginx
reload_nginx() {echo "Reloading Nginx..."sudo /etc/init.d/nginx reloadecho "Nginx reloaded."
}# Clear the cache
clear_cache# Reload Nginx
reload_nginx

http://www.ppmy.cn/devtools/22406.html

相关文章

Java设计模式 _结构型模式_桥接模式

一、桥接模式 1、桥接模式 桥接模式(Bridge Pattern)是一种结构型设计模式。用于把一个类中多个维度的抽象化与实现化解耦,使得二者可以独立变化。 2、实现思路 使用桥接模式,一定要找到这个类中两个变化的维度:如支…

Android如何使用XML自定义属性

1、定义 在res/values文件下定义一个attrs.xml文件,代码如下: 2、使用 在布局中使用, 示例代码如下: 3、获取 最终来到这里:

ubuntu安装Anaconda安装及conda使用

一. 安装anaconda3详细教程 1、下载镜像 清华大学开源软件镜像站下载地址: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下拉到最低端选择Linux,选择最新版(32/64位)下载。这里我下载的是版本Anaconda3-4.3.30-Linux…

怎么理解JavaScript原型、原型链

原型 JavaScript被描述为一种基于原型的语言,也就是每一个对象都拥有一个原型对象。 当我们访问一个对象的属性时,它不仅仅该改对象上查找,还会到这个对象的原型上查找,甚至是到这个对象的原型的原型上查找,这样一层…

Vue入门到关门之指令系统

一、引入 在 Vue.js 中,指令(Directives)是一种特殊的标记,用于向 Vue 实例提供特殊的行为。指令以 v- 开头,例如 v-if、v-for 等。 指令的本质就是语法糖,标志位。在编译阶段 render 函数里,…

SVM中常用的核函数及适用场景

常用的核函数 核函数(Kernel functions)在机器学习中尤其是在支持向量机(SVM)中扮演着重要的角色,它们能够将数据映射到高维空间,从而解决非线性问题。以下是一些常用的核函数及其适用场景: 线…

MR混合现实实训系统为农学情景实训教学演练

MR混合现实实训系统在农学课堂上的应用具有很大的潜力。它能够为学生提供一种全新的学习方式,使他们能够更直观地了解和理解农业实践。 首先,MR混合现实技术可以模拟真实环境,使学生能够更深入地了解各种农作物生长的过程和环境因素。通过模拟…

GEE:geometry和FeatureCollection的相互转换

作者:CSDN _养乐多_ 本文记录了在 Google Earth Engine (GEE)平台上,geometry 和 FeatureCollection 的相互转换的代码。 因为有时候,想使用对 FeatureCollection 的函数进行矢量数据可视化,但是矢量边界…