核心指令

 

  1. proxy_cache_path /data/nginx/cache/one levels=1:2 keys_zone=one:10m max_size=10g;
  2. proxy_cache_key "$host$request_uri";
 
配置使用
  1. proxy_cache one;
  2. #设置状态码为200302过期时间为10分钟
  3. proxy_cache_valid 20030210m;
  4. #设置状态码404的过期时间为1分钟
  5. proxy_cache_valid 4041m;
 
详细说明

主要指令
  1. proxy_cache_path proxy_cache_key proxy_cache proxy_cache_valid。
  2. proxy_cache_path

这个是设置缓存的目录,语法如下:

  1. proxy_cache_path path [ levels = levels ] keys_zone = name : size [ inactive = time ][ max_size = size ][ loader_files = number ][ loader_sleep = time ][ loader_threshold = time ]

可放置的上下文:

  1. http

参数解释:

  1. [ levels = levels ]:
  2. 设置缓存目录层数,如levels=1:2,表示创建两层目录缓存,最多创建三层。第一层目录名取proxy_cache_key md5的最后一个字符,第二层目录名取倒数2-3字符,如:
  3. proxy_cache_key md5为b7f54b2df7773722d382f4809d65029c,则:
  4. levels=1:2为/data/Nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c
  5. levels=1:2:3为/data/nginx/cache/c/29/650/b7f54b2df7773722d382f4809d65029c
  6. keys_zone = name : size:
  7. 定义缓存区域名称及大小,缓存名称用于proxy_cache指令设置缓存放置在哪,如proxy_cache one,则把缓存放在zone名称为one的缓存区,即proxy_cache_path指定的具体位置。
  8. proxy_cache_key
  9. 这个指令是设置以什么参数md5得到缓存的文件名,默认为$scheme$proxy_host$request_uri,即以协议、主机名、请求uri(包含参数)作md5得出缓存的文件名。
  10. proxy_cache_key与下面的清缓存功能(purge cache)有很大关系。可放置在上下文,http server location

proxy_cache

  1. 反向代理缓存设置指令,语法
  2. proxy_cache zone | off,默认为off。
  3. 上下文:http server location。
  4. 可以放到指定location,这样匹配此location的url才被缓存。

proxy_cache_valid

  1. 设置指定状态码的缓存时间,语法
  2. proxy_cache_valid [ code ...] time。
 
 header 引起无法缓存解决
  1. proxy_ignore_headers Set-CookieCache-Control;
  2. proxy_hide_header Cache-Control;
  3. proxy_hide_header Set-Cookie;
 
 

nginx 缓存处理的更多相关文章

  1. ASP.NET Core 缓存技术 及 Nginx 缓存配置

    前言 在Asp.Net Core Nginx部署一文中,主要是讲述的如何利用Nginx来实现应用程序的部署,使用Nginx来部署主要有两大好处,第一是利用Nginx的负载均衡功能,第二是使用Nginx ...

  2. nginx缓存设置proxy_cache

    http://www.cnblogs.com/dudu/p/4597351.html http块: proxy_cache_path /tmp/cache levels=1:2 keys_zone=n ...

  3. nginx缓存配置的操作记录梳理

    web缓存位于内容源Web服务器和客户端之间,当用户访问一个URL时,Web缓存服务器会去后端Web源服务器取回要输出的内容,然后,当下一个请求到来时,如果访问的是相同的URL,Web缓存服务器直接输 ...

  4. nginx 缓存机制

    nginx 缓存机制   Nginx缓存的基本思路 利用请求的局部性原理,将请求过的内容在本地建立一个副本,下次访问时不再连接到后端服务器,直接响应本地内容 Nginx服务器启动后,会对本地磁盘上的缓 ...

  5. Nginx 缓存参数

    看看这下面两个指令参数: ----------------------------------------------------------------- proxy_cache_path  /ho ...

  6. 分布式Nginx缓存清理(PHP的socket编程)

    最近,公司要使用康乐的几台自建CDN换成Nginx,在缓存配置上不会有很多的问题,纠结的问题是:Nginx的如何批量进行缓存清理 我们都知道Nginx提供了一个第三方的模块"nginx ng ...

  7. nginx缓存优先级(缓存问题者必看)

    接触nginx的兄弟或多或少都有遇到缓存问题,要么是nginx为什么不缓存,要么就是nginx缓存很快就失效等等问题,在网上找了一遍nginx缓存优先级的文章,大家可以参考下. 架构图client端  ...

  8. Nginx实现负载均衡&Nginx缓存功能

    一.Nginx是什么 Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambl ...

  9. 使用nginx缓存服务器上的静态文件

    一.nginx缓存的优点 如图所示,nginx缓存,可以在一定程度上,减少源服务器的处理请求压力. 因为静态文件(比如css,js, 图片)中,很多都是不经常更新的.nginx使用proxy_cach ...

  10. nginx缓存设置(expires)

    一.expires功能说明 nginx缓存的设置可以提高网站性能,对于网站的图片,尤其是新闻网站,图片一旦发布,改动的可能是非常小的,为了减小对服务器请求的压力,提高用户浏览速度,我们可以通过设置ng ...

随机推荐

  1. ML之多元线性回归

    转自:http://www.cnblogs.com/zgw21cn/archive/2009/01/07/1361287.html 1.多元线性回归模型 假定被解释变量与多个解释变量之间具有线性关系, ...

  2. POJ2104 (平方分割)二分查找理解。

    题意:任意区间求第k大数 思路: 预处理:利用平方分割(分桶法)把区间切割成B = sqrt(n)大小的一块块,然后每个各自排序. 二分第k大数x,接着就需要求[l,r]区间中x的排名,与k比较,将两 ...

  3. Linux下记录所有用户的登录和操作日志

    Linux下记录所有用户的登录和操作日志   一般我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是哪个用户登录操作的,也不能记录详细的操作时间,且不完整:所以误操作而造成重要的 ...

  4. 001——vue.js初始安装:

    windows下安装: 1.https://nodejs.org/en/  下载安装node.js. 在cmd窗口输入node -v检查node是否安装成功. npm也随着node安装了:npm -v ...

  5. Spring入门5.事务管理机制

    Spring入门5.事务管理机制 20131126 代码下载 : 链接: http://pan.baidu.com/s/1kYc6c 密码: 233t 回顾之前的知识,Spring 最为核心的两个部分 ...

  6. LeetCode OJ:House Robber II(房屋窃贼II)

    After robbing those houses on that street, the thief has found himself a new place for his thievery ...

  7. 谷歌模拟手机和真机上显示的各个机型的 dpi--和高度

    **以下数据尚未经过严密测试.待日后工作中再试** var dpi = window.devicePixelRatio;//获取屏幕分辨率 alert("dpi为:"+dpi); ...

  8. python蛋痛的依赖管理

    java有maven 来统一管理项目依赖.初学python不久还没发现类似这样的工具.只有暂时用这个方法来手动操作了. 你可以用pip导出你的dependency: $ pip freeze > ...

  9. obj-y,obj-m 区别

    obj-y:把由foo.c 或者 foo.s 文件编译得到foo.o 并连接进内核.obj-m: 则表示该文件作为模块编译.除了y.m以外的obj-x 形式的目标都不会被编译. 除了obj-形式的目标 ...

  10. openssl之aes加密(源码分析 AES_encrypt 与 AES_cbc_encrypt ,加密模式)

    首先要了解AES加密是什么,以及几种加密模式的区别.之后才是编程.具体的编程案例,在下面的链接. openssl之aes加密(AES_cbc_encrypt 与 AES_encrypt 的编程案例) ...