NGINX下配置CACHE-CONTROL

HTTP協議的Cache -Control指定請求和響應遵循的緩存機制。
在請求消息或響應消息中設置 Cache-Control並不會影響另外一個消息處理過程當中的緩存處理過程。
請求時的緩存指令包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached等。
響應消息中的指令包括public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。
php

瀏覽器中關於Cache的3屬性:css

Cache-Control:html

設置相對過時時間, max-age指明以秒爲單位的緩存時間. 若對靜態資源只緩存一次, 能夠設置max-age的值爲315360000000 (一萬年).編程

Http協議的cache-control的常見取值及其組合釋義:瀏覽器

no-cache: 數據內容不能被緩存, 每次請求都從新訪問服務器, 如有max-age, 則緩存期間不訪問服務器.緩存

no-store: 不只不能緩存, 連暫存也不能夠(即: 臨時文件夾中不能暫存該資源)服務器

private(默認): 只能在瀏覽器中緩存, 只有在第一次請求的時候才訪問服務器, 如有max-age, 則緩存期間不訪問服務器.url

public: 能夠被任何緩存區緩存, 如: 瀏覽器、服務器、代理服務器等spa

max-age: 相對過時時間, 即以秒爲單位的緩存時間.代理

no-cache, private: 打開新窗口時候從新訪問服務器, 若設置max-age, 則緩存期間不訪問服務器.

private, 正數的max-age: 後退時候不會訪問服務器

no-cache, 正數的max-age: 後退時會訪問服務器

點擊刷新: 不管如何都會訪問服務器.

Expires:

設置以分鐘爲單位的絕對過時時間, 優先級比Cache-Control低, 同時設置Expires和Cache-Control則後者生效.

Last-Modified:

該資源的最後修改時間, 在瀏覽器下一次請求資源時, 瀏覽器將先發送一個請求到服務器上, 並附上If-Unmodified-Since頭來講明瀏覽器所緩存資源的最後修改時間, 若是服務器發現沒有修改, 則直接返回304(Not Modified)迴應信息給瀏覽器(內容不多), 若是服務器對比時間發現修改了, 則照常返回所請求的資源.

 

注意:

Last-Modified屬性一般和Expires或Cache-Control屬性配合使用, 由於即便瀏覽器設置緩存, 當用戶點擊」刷新」按鈕時, 瀏覽器會忽略緩存繼續向服務器發送請求, 這時Last-Modified將可以很好的減少迴應開銷.

 

ETag將返回給瀏覽器一個資源ID, 若是有了新版本則正常發送並附上新ID, 不然返回304, 可是在服務器集羣狀況下, 每一個服務器將返回不一樣的ID, 所以不建議使用ETag.

 

以上描述的客戶端瀏覽器緩存是指存儲位置在客戶端瀏覽器, 可是對客戶端瀏覽器緩存的實際設置工做是在服務器上的資源中完成的. 雖然剛纔咱們介紹了有關於客戶端瀏覽器緩存的屬性, 可是實際上對這些屬性的設置工做都須要在服務器的資源中作設置. 咱們有兩種操做手段對瀏覽器緩存進行設置, 一個是經過頁面指令聲明來設置, 另一個是經過編程方式來設置.

Nginx的ngx_http_headers_module模塊能夠對Cache-Control頭相關的東西進行配置
例如:
    # 相關頁面設置Cache-Control頭信息
    例一:
   if ($request_uri ~* "^/$|^/search/.+/|^/company/.+/") {
     add_header    Cache-Control  max-age=3600;
    }

   例二:

location ~ .*\.(css|js|swf|php|htm|html )$ {
add_header Cache-Control no-store;
}

例三:
location ~ .*\.(js|css)$ {
expires 10d;
}
參考文檔:http://www.cnblogs.com/jason-zy/archive/2012/03/06/2381433.htmlhttp://www.cnblogs.com/wenanry/archive/2012/02/19/2358708.htmlhttp://zhidao.baidu.com/link?url=rr7aH9tLx2-PyfPMxp-PnRDa-RYRNSzhapmOgViBhkBAICEaNqbQV5QumAvNLUPKSbRD0I5_d0HwYRp134f-s6T8Ruqhb5W3hmQ3liPnDyu
相關文章
相關標籤/搜索