2012-07-25 43 views
2

我有一個網站,您每次上傳圖片時都會以各種不同的框架尺寸進行渲染。一個cron作業每10分鐘運行一次,查看是否在此期間上傳了任何新圖像,如果有,則會生成所有需要的幀。如何發送Akamai緩存過期頭文件?

由於此cron每10分鐘運行一次,內容(例如文章)上線和圖像可用時間之間有一段時間。因此,在此期間顯示了帶有網站徽標的通用佔位符圖像。

由於Akamai緩存圖像,當網站用戶加載一個頁面,該頁面的圖像尚未被cron渲染時,則會顯示一個靜態佔位符來顯示該圖像路徑,Akamai將緩存該圖像。即使圖像稍後呈現並且可用,用戶仍然可以從Akamai獲得緩存版本。

一個解決方案是在cron渲染這些圖像時,對這些圖像的「年齡」進行半身像處理。但需要Akamai大約8分鐘才能返回新的。

是否有任何其他解決方案,我可以告訴Akamai可能通過緩存過期標題每10秒回來一次,直到收到新圖像,並且一旦完成不再回來並繼續顯示緩存版本?

回答

2

是的,在某種程度上。如果您結合服務器端和akamai設置中的幾個步驟。

以下是概念:邊緣服務器提供它擁有的內容。如果您使用緩存控制標題(例如,來自php),則相應數字屬性的akamai配置設置中的TTL設置會將它們吹走,並使用它們。這意味着你告訴它通過路徑,文件類型,擴展名或其他方式來訪問源服務器的頻率。然後從客戶端,無論它將文件傳送給最終用戶,邊緣服務器獲取內容的頻率並不重要,除非您不在該級別緩存,否則將其還原回給您。

使用這些配置設置,您可以指定特定的文件具有確切的到期日期 - 或者完全不緩存它。

因此,如果在服務器端,如果您在頁面上指定placeholder.jpg並告訴akamai根本不緩存該映像,那麼每次邊緣服務器收到請求時都會返回。一旦你的圖像就位,那麼placeholder.jpg就不再存在於你的頁面上,而是存在sizeA.jpg,它會服從常規的圖像緩存時間。

這可能不是很理想,但它是最好的,除了手動清除頁面以外,據我所知他們沒有API調用來清除可以觸發的頁面(加上無論如何,緩存清除需要7-10分鐘的時間才能通過它們的n/w傳播)。

相關問題