天天看點

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

繼續閱讀