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

默北 Nginx349,84511字数 1084阅读3分36秒阅读模式

内容缓存是显著提高web站点的性能最有效的方法之一。下面来说说nginx高性能缓存。

内容缓存的基本原则

nginx文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

对GET请求进行缓存。文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

使用:浏览器缓存,内容分发网络和/或反向代理缓存。文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

nginx文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

HTTP缓存机制:文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

1. 源服务器宣称的内容缓存能力。 主要是对http头信息来控制的。文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

2. 请求的客户端缓存能力,如GET请求。文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

nginx文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

nginx对哪些进行缓存?文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

1. 缓存没有 Set-Cookie 的GET和HEAD的响应。文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

2. 通过定义独特的原始URL,如proxy_cache_key。文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

3. 通过定义缓存时间,如X-Accel-Expires、Cache-Control、Expires。文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

nginx 操作

nginx文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

nginx配置文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

nginx文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

缓存的过程文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

nginx的可在下列情况下使用陈旧的内容,通过proxy_cache_use_stale指令定义。文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

nginx文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

不仅仅对HTTP缓存,还有其他的,如:文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

1. FastCGI  功能很像HTTP文章源自运维生存时间-https://www.ttlsa.com/nginx/nginx-high-performance-caching/

2. Memcache 检索memcached服务器的内容(必须预先填充)

3. uwsgi and SCGI

如何理解这些

nginx

缓存仪表

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

nginx

nginx

扩展状态监控

在nginx上缓存内容

nginx

它是如何工作的?

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

2. 关注下面几点:

  • 内容是如何存储在缓存?
  • 缓存是如何在启动时加载的?
  • 缓存过期修剪
  • 人工清理缓存内容

nginx

缓存内容是如何存储的?

首先需要定义proxy_cache_path。

  • 定义缓存key,proxy_cahce_key
  • 获取内容到缓存中,然后检查MD5值
  • 验证

nginx

从磁盘加载缓存

nginx

管理磁盘缓存

nginx

清除磁盘内容

控制缓存

nginx

延迟缓存  proxy_cache_min_uses 节省磁盘写入

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

nginx

缓存时间控制

nginx

nginx

多个缓存

为什么缓存

nginx

提高网页速度

nginx

nginx

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

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
默北
  • 本文由 发表于 04/02/2015 12:05:16
  • 转载请务必保留本文链接:https://www.ttlsa.com/nginx/nginx-high-performance-caching/
评论  3  访客  3
    • 匿名
      匿名 9

      • bobo
        bobo 1

        有没有具体配置文件悄悄

        • つ就这样~简简单单
          つ就这样~简简单单 9

          额….没看懂.

        评论已关闭!