阿里云CDN下載文件不一致的解決方案
通過(guò)CDN訪問(wèn)其上的緩存在沒(méi)有過(guò)期之前是會(huì)直接反饋給用戶CDN上的緩存,而如果用戶在這期間源站做了同名更新后訪問(wèn)的時(shí)候會(huì)發(fā)現(xiàn)請(qǐng)求到的資源仍然是舊的資源而導(dǎo)致網(wǎng)站內(nèi)容錯(cuò)亂。這種問(wèn)題建議從以下幾個(gè)方面解決:
1、源站不做同名更新或增加版本號(hào):源站做了同名更新后CDN并不會(huì)知曉該事情,因此建議用戶在源站盡量不要做同名更新,或者通過(guò)給URL增加版本參數(shù)的方式來(lái)使CDN請(qǐng)求新資源的時(shí)候會(huì)回源拿數(shù)據(jù)(這種方式在CDN的控制臺(tái)上不能開(kāi)啟過(guò)濾參數(shù)按鈕,否則失效)。
2、用戶在進(jìn)行同名刷新后可通過(guò)控制臺(tái)/API來(lái)手動(dòng)刷新對(duì)應(yīng)的資源URL,刷新方式可以分為目錄刷新和URL刷新。其中URL刷新主要適合于單個(gè)資源,刷新速度較快,而目錄刷新則會(huì)刷下該目錄下的所有文件、刷新速度較慢并且由于該目錄下所有資源下次請(qǐng)求都會(huì)回源可能會(huì)對(duì)源站帶寬所負(fù)載情況。
3、如果CDN的源站是OSS的話,在OSS的控制臺(tái)上開(kāi)啟CDN緩存刷新按鈕就可以在OSS源站出現(xiàn)object的同名更新的時(shí)候會(huì)調(diào)用CDN的刷新接口刷新對(duì)應(yīng)的URL。設(shè)置請(qǐng)參考下圖: