我正在嘗試向Azure CDN(生產站點)上的項目發出HEAD請求,但希望避免響應來自無論是本地瀏覽器緩存還是原始服務器(我的網絡角色)。這將是一個流量很大的網站,內容全是靜態的,因此可以從我的web角色的/ cdn文件夾緩存在Azure CDN上。緩存破壞本地瀏覽器緩存但確保Azure CDN響應而不是來自原始服務器(Web角色)
我已經通過調用解決,避免我的本地瀏覽器緩存的問題:
$.ajaxSetup({cache: false});
也正在使用我的HEAD請求簡單地檢索響應時間,因爲所有我想要的是在格林尼治標準時間保證當前時間( Azure是所有設置爲格林尼治標準時間):
$.ajax({
type: "HEAD",
async: true,
url: "small.png",
success: function (message, text, response) {
doSomething(response.getResponseHeader("Date"));
}
});
現在,我保證,我的迴應是絕對不會被我的瀏覽器緩存副本完成,但我不知道如何驗證是否響應從Azure的未來CDN或原始服務器(Web角色)。我想保證,如果「small.png」在Azure CDN上,我的迴應來自那裏。基本上,我需要確認我的原始服務器不會受到請求的轟炸,並且CDN將遏制99.999999%的請求,包括這個請求。但是,由於我在HEAD請求($ .ajaxSetup({cache:false});之前執行了緩存清除操作;它將唯一查詢字符串附加到請求上,所以我不確定Azure CDN是否決定將請求轉發到原始服務器
請注意,通過Azure門戶,我已經在我的CDN上選中了「啓用Querystring」選項,我認爲這足以滿足我,但我希望得到溫暖和模糊的感覺, Azure CDN,而不是起源。在小提琴手中有沒有任何指標可以證明我的回答是來自CDN(代理服務器)而不是原始服務器?
目前我有30分鐘的緩存過期,但我會調整/優化這個當我們上線。
感謝您的回覆smarx!實際上,在我的這個項目的工作過程中,我實際上遇到過你的smarxcdn博客文章。我的原始服務器是Azure上的生產Web角色,我會看看是否可以將其設置爲使用RDP來檢查日誌。 – CombYoBeard
我能夠遠程訪問我的Web角色的所有實例,並確認HEAD對small.png的請求在CDN上受到限制,原因是該圖像緩存在Azure CDN上,並且未在我的CDN端點上保留「查詢字符串」在Azure門戶中進行設置。謝謝! – CombYoBeard