[nginx]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_path
proxy_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;
}
}
[nginx]proxy_cache缓存系统的更多相关文章
- nginx proxy_cache缓存详解
目录 1. 关于缓冲区指令 1.1 proxy_buffer_size 1.2 proxy_buffering 1.3 proxy_buffers 1.4 proxy_busy_buffers_siz ...
- Nginx proxy_cache 缓存静态文件
原文链接:https://blog.csdn.net/bjgaocp/article/details/87867521 创建缓存目录mkdir /tmp/ngx_cache 添加下面语句在http{ ...
- 使用Nginx反向代理和proxy_cache缓存搭建CDN服务器加快Web访问速度
碰到问题:移动用户访问web服务器www.osyunwei.com很慢解决办法:1.在移动机房放置一台nginx反向代理服务器2.通过域名DNS智能解析,所有移动用户访问www.osyunwei.co ...
- 【Nginx】不改系统源代码的情况下,动态网站离线缓存方案
背景: 公司的一套系统,由前端.界面.服务层.大数据开发平架等多层组成,每一层被划分为多个模块,每个模块会依赖若干组建.由于公司的这套系统是部署在内网环境中的,现在需要拿出去给客户演示,用一个笔记本装 ...
- Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块
反向代理的缓存清理 一.proxy_cache配置 (1)如何配置和安装,都在这里了:https://github.com/Tinywan/Lua-Nginx-Redis/blob/master/Ng ...
- 使用Nginx的proxy_cache缓存功能取代Squid(转)
Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302 ...
- nginx的proxy_cache缓存配置
为什么要做web cache,我想大家最主要的是解决流量的压力.随着网站流量的提升,如果只是单台机器既处理静态文件,又处理动态脚本,显然效率很难上升,不能处理日益上涨的流量压力.与此同时某些网站的页面 ...
- 使用Nginx的proxy_cache缓存功能取代Squid
Nginx从0.7.48版本开始,支持了类似Squid的缓存功能.这个缓存是把URL及相关组合当作Key,用md5编码哈希后保存在硬盘上,所以它可以支持任意URL链接,同时也支持404/301/302 ...
- 使用Nginx的proxy_cache缓存功能取代Squid[原创]
使用Nginx的proxy_cache缓存功能取代Squid[原创] [文章作者:张宴 本文版本:v1.2 最后修改:2009.01.12 转载请注明原文链接:http://blog.zyan.cc/ ...
- Nginx + PHP 缓存详解
Nginx缓存nginx有两种缓存机制:fastcgi_cache和proxy_cache下面我们来说说这两种缓存机制的区别吧proxy_cache作用是缓存后端服务器的内容,可能是任何内容,包括静态 ...
随机推荐
- 2023-04-09:使用 Golang 重写的 ffmpeg 示例encode_video.c,实现视频编码并将编码后的数据封装为容器格式,最终写入输出文件。
2023-04-09:使用 Golang 重写的 ffmpeg 示例encode_video.c,实现视频编码并将编码后的数据封装为容器格式,最终写入输出文件. 答案2023-04-09: 本文介绍的 ...
- 2021-04-21:手写代码:Dijkstra算法。
2021-04-21:手写代码:Dijkstra算法. 福大大 答案2021-04-21: Dijkstra算法是一种基于贪心策略的算法.每次新扩展一个路程最短的点,更新与其相邻的点的路程.时间紧,未 ...
- 2021-12-17:长城守卫军问题。 长城上有连成一排的n个烽火台,每个烽火台都有士兵驻守。 第i个烽火台驻守着ai个士兵,相邻峰火台的距离为1。另外,有m位将军, 每位将军可以驻守一个峰火台,每个
2021-12-17:长城守卫军问题. 长城上有连成一排的n个烽火台,每个烽火台都有士兵驻守. 第i个烽火台驻守着ai个士兵,相邻峰火台的距离为1.另外,有m位将军, 每位将军可以驻守一个峰火台,每个 ...
- 【GiraKoo】C++编译中常用的内置宏
开源项目:https://girakoo.com/ 联系方式:girakoo@163.com 简介 针对不同的平台,很多头文件,函数名称,类型占用空间不一致. 为了保证跨平台可编译,经常需要在项目中使 ...
- 记一次 .NET 某汽贸店 CPU 爆高分析
一:背景 1. 讲故事 上周有位朋友在 github 上向我求助,说线程都被卡住了,让我帮忙看下,截图如下: 时隔两年 终于有人在上面提 Issue 了,看样子这块以后可以作为求助专区来使用,既然来求 ...
- 如何在 macOS 上进行 STM32 开发 All In One
如何在 macOS 上进行 STM32 开发 All In One 网上好多 STM32 的教学视频的开发环境都是基于 Windows 系统的,对 macOS 用户直接劝退了 solutions 在 ...
- PE 结构的三种地址
三种地址 (一)VA(虚拟地址):PE 文件被 Windows 加载到内存后的地址. (二) RVA(相对虚拟地址):PE 文件虚拟地址相对于映射基地址(对于 EXE 文件来说,映射基地址是 ...
- debug.exe的使用
debug.exe的使用 debug.exe 是 Windows 操作系统自带的一个命令行调试工具,用于在 DOS 环境下进行汇编语言级别的调试操作.它可以让程序员以来自底层的方式逐步执行代码并检查每 ...
- SpringBoot+MyBatisPlus实现读写分离
前言 随着业务量的不断增长,数据库的读写压力也越来越大.为了解决这个问题,我们可以采用读写分离的方案来分担数据库的读写负载.本文将介绍如何使用 Spring Boot + MyBatis Plus + ...
- ClickHouse技术研究及语法简介
本文对Clickhouse架构原理.语法.性能特点做一定研究,同时将其与mysql.elasticsearch.tidb做横向对比,并重点分析与mysql的语法差异,为有mysql迁移clickhou ...