nginx的緩存清理
2111
發(fā)布于 云南 2024-09-30 · 5004瀏覽 2贊

最近試了下nginx的緩存功能,發(fā)現(xiàn)只有商業(yè)版支持緩存清理命令,于是用go寫了個(gè)清理緩存的程序。

首先,緩存文件命名規(guī)則由proxy_cache_key參數(shù)配置,比如配置為:proxy_cache_key "$host$request_uri",意思就是使用域名+訪問路徑進(jìn)行md5計(jì)算得到緩存文件名,比如訪問http://www.abc.cn/defg時(shí)生成的緩存就是使用字符串“www.abc.cn/defg”(不含引號(hào))進(jìn)行md5計(jì)算,得到的直就是這個(gè)路徑的緩存文件名:90f752a819261d9e852a9519292d0a9a。

其次,緩存文件的存儲(chǔ)路徑根據(jù)proxy_cache_path參數(shù)配置中的levels的值來確定,比如levels=1:2,意思就是緩存分為2級目錄,一級目錄名1個(gè)字母,取緩存文件名的最后一個(gè)字母,二級目錄名2個(gè)字母,取緩存文件名的倒數(shù)第2、3個(gè)字母。以md5值: 90f752a819261d9e852a9519292d0a9a為例,這個(gè)緩存文件的存儲(chǔ)路徑就是:/緩存根目錄/a/a9/90f752a819261d9e852a9519292d0a9a。

最后,知道了緩存文件名和路徑就可以用程序來執(zhí)行緩存清理了,只需要根據(jù)文件訪問路徑和緩存配置參數(shù)計(jì)算出對應(yīng)的緩存文件名和存儲(chǔ)路徑,然后執(zhí)行刪除就能清除指定文件的緩存了。

簡單的清理程序如下圖:

2111
~
瀏覽 5004
2
相關(guān)推薦
最新評論
贊過的人 2
評論加載中...

暫無評論,快來評論吧!