nginx 快取,大檔案分片請求方法

2022-02-03 15:22:09 字數 2188 閱讀 4220

實現的途徑:expire cache-control

更新快取的機制

如何校驗本地快取是否過期

expires cache-control(max-age)如果超期,說明失效

然後進行etag是否過期(是一串字串)優先校驗 先用etag,如果沒有---last-modified

last-modified---具體的時間 過期時間時分秒----http request頭資訊

配置語法 

304---快取和修改時間沒有更新,就提示 not modified

如果客戶端(request-header)加入了請求頭 cache-control max-age=0 ,那麼意味著每次請求都要到服務端校驗。通常用請求頭last-modified對比 服務端檔案的修改時間,從而得出是否快取更新;這樣做的好處是可以實時請求服務端的檔案更新,壞處是不斷向服務端發起連線請求,沒利用上快取

86400秒=24小時 **快取,動態快取都依賴response head的cache-control

**都盡可能減少對後端的訪問,從而把資源放到前端的nginx快取中,

快取放服務端---服務端快取常見的是key-value,常見的是資料放在memocache,redis

**中介軟體---**快取,  從服務端獲取到快取到本地,放在nginx一端

客戶端快取----放在瀏覽器上

nginx**快取的流程

配置語法

配置快取過期週期

測試場景:

主機啟動8001,8002,8003這三個埠

設定上圖proxy_cache_path 引數下 定義了存放快取的路徑,資料夾分級方式:2層資料夾,keys_zone是為快取命名inactive=60m,意味著60分鐘內該快取如果未被訪問將被淘汰掉

其他配置資訊:proxy_cache_valid 200 304 意味著狀態200,狀態304下返回的頭資訊 超時時間是12小時

proxy_cache_valid_any 10m 除了狀態200 和 304 其他狀態下返回頭資訊只保留10分鐘

proxy_next_upstream 遇到下列情況,換伺服器服務:遇到狀態500,502,503 504;超時;提示錯誤

add_header新增請求資訊頭 nginx_cache

把proxy_cache_調為off,就能訪問不同的服務端返回頁面了,如下圖

清理指定快取的方法

如何讓頁面不快取

針對特別頁面設定不快取的**

乙個很特別的刪除語句

大檔案分片請求 slice 後面的size 就是分片檔案大小

原理,先提交請求到後端,然後拿到請求的檔案大小,然後根據slice size進行切片,形成乙個個獨立的小檔案,分別請求服務後端

優勢:每個子請求收到的資料都會形成乙個獨立檔案,乙個請求斷了,其他的請求不受影響

缺點:一次請求會建立乙個作業系統控制代碼,如果檔案很大slice size很小就會造成很多個請求,造成建立多個連線和多個控制代碼

大檔案 分片和 合成

越來越喜歡 linux 系統,命令列工具功能強大 操作簡單。linux 下 cheat 檢視 split 幫助 cheat split to split a large text file into smaller files of 1000 lines each split file.txt l ...

vue 大檔案分片上傳

最近公司在使用vue做工程專案,實現大檔案分片上傳。網上找了一天,發現網上很多 都存在很多問題,最後終於找到了乙個符合要求的專案。工程如下 對專案的大檔案上傳功能做出分析,怎麼實現大檔案分片上傳時的呢,這個問題網上專門找到監控軟體進行監控,如何分片的。專案開始後使用 http debugger監控工...

vue 大檔案分片上傳

最近公司在使用vue做工程專案,實現大檔案分片上傳。網上找了一天,發現網上很多 都存在很多問題,最後終於找到了乙個符合要求的專案。工程如下 對專案的大檔案上傳功能做出分析,怎麼實現大檔案分片上傳時的呢,這個問題網上專門找到監控軟體進行監控,如何分片的。專案開始後使用 http debugger監控工...