网站首页 > 技术教程 正文
NGINX静态资源缓存操作是一种在NGINX服务器上对静态资源文件如图片、CSS、JavaScript 等文件进行缓存的操作,通过NGINX静态资源的缓存操作,来提高网站性能,加快页面加载速度。将静态资源缓存在NGINX服务器上,可以减少对后端服务器的请求,降低服务器负载,并加快客户端访问网站的速度。
如何配置?
创建缓存路径
在NGINX配置中,首先需要指定一个缓存的路径,用来对静态文件进行缓存,可以通过proxy_cache_path命令来进行定义,如下所示。
# 定义缓存路径和缓存名称
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;配置缓存规则
针对需要缓存的静态资源,设置缓存规则。通常情况下,会在location块中设置缓存规则,如下所示。
# 静态资源缓存配置
location /static {
# 设置缓存名称和缓存路径
proxy_cache my_cache;
# 缓存过期时间
proxy_cache_valid 200 302 60m;
proxy_cache_valid 404 1m;
# 开启缓存锁定,防止并发请求穿透缓存
proxy_cache_lock on;
# 设置缓存键值
proxy_cache_key $host$uri$is_args$args;
# 设置缓存条件
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
# 缓存路径
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
...
}- proxy_cache_valid:设置不同HTTP状态码的缓存过期时间。例如,上述配置中,对于 200和302状态码的响应,缓存有效期为60分钟,对于404状态码的响应,缓存有效期为1分钟。
- proxy_cache_lock:开启缓存锁定功能,防止并发请求穿透缓存。当一个请求正在更新缓存时,其他请求会被挂起,直到缓存更新完成。
- proxy_cache_key:设置缓存键值,通常使用 $host$uri$is_args$args,表示基于主机名、URI 和查询参数生成缓存键值。
- proxy_cache_path:设置缓存路径和缓存大小,可以设置缓存的存储路径、最大大小、最长存储时间等参数。
- proxy_cache_use_stale:配置缓存条件,当后端服务器响应异常时(如错误、超时等),可以允许NGINX使用过期的缓存响应。
完整的NGINX配置
下面给出一个完整的NGINX配置实现。
# 定义缓存路径和缓存名称
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
# 定义 HTTP 服务
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# 配置静态资源缓存
location /static {
proxy_cache my_cache;
proxy_cache_valid 200 302 60m;
proxy_cache_valid 404 1m;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
proxy_ignore_headers Cache-Control Expires;
add_header X-Cache-Status $upstream_cache_status;
expires 1h;
}
}
}配置文件介绍
- 使用proxy_cache_path指令定义了一个名为my_cache的缓存区域,将缓存存储在/var/cache/nginx目录中,最大大小为10GB,60分钟内没有被访问的缓存文件会被认为是不活跃的,临时路径使用禁用。
- 配置了一个HTTP服务,在server块中定义了监听端口为80,并设置了默认的文件类型和超时时间。
- location / 块定义了网站根目录和默认首页。
- location /static 块定义了静态资源缓存的配置,将/static目录下的静态资源缓存到my_cache缓存区域中,对于状态码为200和302的响应,缓存有效期为60分钟,对于状态码为404的响应,缓存有效期为1分钟。同时设置了缓存键值、缓存条件、缓存状态标头、缓存过期时间等参数。
- 最后,使用expires指令设置了静态资源的浏览器缓存时间为1小时。
猜你喜欢
- 2024-10-10 推荐几个开源的个人独立博客系统(开源个人博客源码下载)
- 2024-10-10 Kubernetes 之 Nginx 动静态 PV 持久存储 下篇
- 2024-10-10 FreeMarker-静态模板的使用与生成
- 2024-10-10 使用nginx做前端服务器可以设置类似的静态文件客户端缓存
- 2024-09-12 「nginx」十、nginx的location配置详解
- 2024-09-12 使用nginx部署前端html等静态页面
- 2024-09-12 Nginx配置文件(nginx配置文件位置)
- 2024-09-12 基于nginx反向代理实现网站静态页面与动态页面自动切换
- 2024-09-12 nginx学习总结(nginx入门教程)
- 2024-09-12 除了负载均衡,Nginx还可以做很多,限流、缓存、黑白名单等
欢迎 你 发表评论:
- 10-23Excel计算工龄和年份之差_excel算工龄的公式year
- 10-23Excel YEARFRAC函数:时间的"年份比例尺"详解
- 10-23最常用的10个Excel函数,中文解读,动图演示,易学易用
- 10-23EXCEL中如何计算截止到今日(两个时间中)的时间
- 10-2390%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 10-23计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- 10-23Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 10-23怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- 最近发表
-
- Excel计算工龄和年份之差_excel算工龄的公式year
- Excel YEARFRAC函数:时间的"年份比例尺"详解
- 最常用的10个Excel函数,中文解读,动图演示,易学易用
- EXCEL中如何计算截止到今日(两个时间中)的时间
- 90%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- Excel日期函数之DATEDIF函数_excel函数datedif在哪里
- Excel函数-DATEDIF求司龄_exceldatedif函数计算年龄
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)

本文暂时没有评论,来添加一个吧(●'◡'●)