天天看点

web内容缓存 nginx高性能缓存详解

web内容缓存 nginx高性能缓存详解

对GET请求进行缓存。

使用:浏览器缓存,内容分发网络和/或反向代理缓存。

web内容缓存 nginx高性能缓存详解

HTTP缓存机制:

1. 源服务器宣称的内容缓存能力。 主要是对http头信息来控制的。

2. 请求的客户端缓存能力,如GET请求。

web内容缓存 nginx高性能缓存详解

nginx对哪些进行缓存?

1. 缓存没有 Set-Cookie 的GET和HEAD的响应。

2. 通过定义独特的原始URL,如proxy_cache_key。

3. 通过定义缓存时间,如X-Accel-Expires、Cache-Control、Expires。

web内容缓存 nginx高性能缓存详解

nginx配置

web内容缓存 nginx高性能缓存详解

缓存的过程

nginx的可在下列情况下使用陈旧的内容,通过proxy_cache_use_stale指令定义。

web内容缓存 nginx高性能缓存详解

不仅仅对HTTP缓存,还有其他的,如:

1. FastCGI  功能很像HTTP

3. uwsgi and SCGI

web内容缓存 nginx高性能缓存详解

缓存仪表

$upstrem_cache_status 变量值有:MISS、BYPASS、EXPIRED、STALE、UPDATING、REVALDATED、HIT。

web内容缓存 nginx高性能缓存详解
web内容缓存 nginx高性能缓存详解

扩展状态监控

web内容缓存 nginx高性能缓存详解

它是如何工作的?

1. nginx是使用基于磁盘的持久性缓存

2. 关注下面几点:

内容是如何存储在缓存?

缓存是如何在启动时加载的?

缓存过期修剪

人工清理缓存内容

web内容缓存 nginx高性能缓存详解

缓存内容是如何存储的?

首先需要定义proxy_cache_path。

定义缓存key,proxy_cahce_key

获取内容到缓存中,然后检查MD5值

验证

web内容缓存 nginx高性能缓存详解

从磁盘加载缓存

web内容缓存 nginx高性能缓存详解

管理磁盘缓存

web内容缓存 nginx高性能缓存详解

清除磁盘内容

web内容缓存 nginx高性能缓存详解

延迟缓存  proxy_cache_min_uses 节省磁盘写入

缓存重新验证 proxy_cache_revalidate 节省上行带宽和磁盘写入

web内容缓存 nginx高性能缓存详解

缓存时间控制

web内容缓存 nginx高性能缓存详解
web内容缓存 nginx高性能缓存详解

多个缓存

web内容缓存 nginx高性能缓存详解

提高网页速度

web内容缓存 nginx高性能缓存详解
web内容缓存 nginx高性能缓存详解
web内容缓存 nginx高性能缓存详解

参考内容:

HTTP caching basics:http://www.tommylacroix.com/2008/07/17/http-caching-basics/

HTTP cache headers:http://www.mobify.com/blog/beginners-guide-to-http-cache-headers/

HTTP:https://www.varnish-software.com/static/book/HTTP.html

本文转自    憬薇   51CTO博客,原文链接:http://blog.51cto.com/welcomeweb/1926522

继续阅读