当前位置: 首页 > news >正文

proxy_cache缓存系统

proxy_cache是nginx内置的一个缓存系统,可实现减小后端负载的作用。

常用参数说明

参数说明
proxy_cache_path缓存文件路径。level表示目录层级,1:2表示两个子目录。keys_zone指定缓存区名称和大小。inactive表示缓存有效期。max_size表示硬盘中缓存的大小。use_temp_path为off时表示缓存文件直接写到cache中而不使用temp_path,避免文件拷贝导致影响性能。
proxy_cache启用缓存并指定缓存区域
proxy_cache_valid根据状态码来定义缓存的有效期
proxy_cache_min_uses被访问多少次后才缓存,默认为1
proxy_cache_methods指定可以被缓存的请求方法,默认值为 GET HEAD
proxy_cache_convert_head如果设置为 on 表示允许将请求的 HEAD 方法改成 GET 方法进行缓存;如果设置为 off,则缓存的 key 需要加上$request_method,即$host$request_uri$request_method
proxy_cache_key设置缓存的 key,默认 key 是完整的 URL
proxy_cache_background_update允许后台启动一个子请求去更新过期的缓存数据,并提供一个过期的缓存数据响应给客户端,前提是 proxy_cache_use_stale 的配置中包含 updating
proxy_cache_use_stale允许在某种条件下返回请求时使用过期的缓存数据
proxy_cache_lock多条相同url请求未命中缓存时,nginx只发送一条请求到后端
proxy_cache_lock_timeout缓存未命中等待超时后,所有未命中的url请求都会转到后端
proxy_ignore_headers即便有指定的响应头操作,依然使用缓存

配置示例

http {# 设置缓存路径、目录层级(1:2 表示两个子目录)、内存zone的名字和内存大小# 缓存有效时间、硬盘最大存储大小、缓存文件直接写到cache文件中而不使用temp_pathproxy_cache_path /home/apps/nginx/cache levels=1:2 keys_zone=ngxcache:100m inactive=7d max_size=1g use_temp_path=off;server {...proxy_cache ngxcache;proxy_cache_valid 200 304 5m;proxy_cache_valid 301 302 2m;proxy_cache_min_uses 1;# 添加一个响应头,用来标识请求是否命中缓存add_header N-Cache-Status $upstream_cache_status;proxy_cache_methods GET HEAD;proxy_cache_convert_head on;proxy_cache_key $scheme$host$uri$is_args$args;proxy_cache_background_update on;# 允许在某种条件下返回请求时使用过期的缓存数据proxy_cache_use_stale error timeout invalid_header updating http_502 http_503 http_504;proxy_cache_lock on;proxy_cache_lock_timeout 10;# 即便有Vary、Set-Cookie的响应头操作,依然使用缓存proxy_ignore_headers Vary Set-Cookie;proxy_pass http://backend;}
}
http://www.dtcms.com/a/286991.html

相关文章:

  • 期刊论文-图片格式要求
  • UNet改进(23):如何用SLCAM模块提升UNet的分割性能
  • Google Gemini CLI 配置简要指南
  • 大模型驱动的超短期功率预测算法封装方案
  • SymAgent(神经符号自学习Agent)
  • PowerBi实现Top N和Bottom N的简单示例
  • 番茄项目1:定了一个新的目标——做一个番茄工作法的web项目!
  • 光伏财务管理:在阳光与资本的精密计算中前行
  • VSCode - VSCode 快速跳转标签页
  • Web攻防-访问控制篇水平越权垂直越权未授权访问级别架构项目插件SRC复盘
  • pytest + requests 接口自动化测试框架
  • [特殊字符] Spring Boot 常用注解全解析:20 个高频注解 + 使用场景实例
  • Anime.js 超级炫酷的网页动画库之SVG路径动画
  • 双指针(滑动窗口)相关算法题
  • RLHF(基于人类反馈的强化学习),DPO(直接偏好优化), GRPO(组相对偏好优化)技术概述
  • 鸿蒙开发--端云一体化--云对象
  • 龙虎榜——20250718
  • 【C++】红黑树,“红“与“黑”的较量
  • 【18位数据次方提高数据输出速度】2022-3-9
  • 多线程-1-基础写法
  • 顺理成章学RL-1(based Stanford CS234 Reinforcement Learning)
  • Webstorm 前端断点调试
  • pom.xml文件中的${}变量从哪里传值
  • Couchbase 可观测性最佳实践
  • ModbusRTU转profibus网关与涡街液体流量计通讯读取流量计温度
  • Android性能优化之启动优化
  • python学智能算法(二十三)|SVM-几何距离
  • Python 入门手札:从 0 到会--第九天Python的模块化编程--模块、包以及常见系统模块和第三方模块总结
  • 微店平台商品详情接口技术实现指南
  • C语言:预处理