2012-11-04 1 views
2

Azure CDN (프로덕션 사이트)의 항목에 HEAD 요청을 보내려고하지만 응답이 오지 않도록하고 싶습니다. 내 로컬 브라우저 캐시 또는 원본 서버 (내 웹 역할). 이것은 대량 밀매 웹 사이트가 될 것이고 그 내용은 모두 정적이어서 내 웹 역할의/cdn 폴더에서 Azure CDN에 캐시됩니다.캐시가 로컬 브라우저 캐시를 파기하지만 원본 서버 (웹 역할)가 아닌 Azure CDN의 응답을 보장합니다.

나는 호출하여 내 로컬 브라우저 캐시를 피할 수있는 문제를 해결 한 :

또한 내 HEAD 요청은 내가 원하는 모든 GMT에 보장 된 현재 시간이 (같이 단순히 응답 날짜를 검색하는 데 사용되는
$.ajaxSetup({cache: false}); 

$.ajax({ 
    type: "HEAD", 
    async: true, 
    url: "small.png", 
    success: function (message, text, response) { 
     doSomething(response.getResponseHeader("Date")); 
    } 
}); 

지금 내 응답이 절대적으로 브라우저의 캐시 된 사본에 의해 충족되지 않는 것을 보장하고, 그러나 나는 응답이 푸른에서오고 있는지 확인하는 방법을 잘 모르겠습니다 : 푸른 모두) GMT로 설정 CDN 또는 원본 서버 (웹 역할). Azure CDN에 "small.png"가 있으면 그 곳에서 내 응답이 오는 것을 보장하고 싶습니다. 기본적으로 원 서버가 요청에 의해 포격 당하지 않으며 CDN이이 요청을 포함하여 99.999999 %의 요청을 제한 할 것임을 확인해야합니다. 그러나 요청에 고유 한 쿼리 문자열을 추가하는 HEAD 요청 ($ .ajaxSetup ({cache : false}) 이전에 캐시를 파기했기 때문에 Azure CDN에서 요청을 전달할 것인지 결정하지 못했습니다.

Azure 포털을 통해 필자는 CDN에서 "Enable Querystring"을 선택하지 않은 채로 남겨 두었습니다.이 질문은 만족 스럽지만 필자의 반응이 실제로 따뜻해지기를 바랄뿐입니다. Azure CDN 및 원산지가 아닙니다. Fiddler에 내 응답이 원래 서버가 아닌 CDN (프록시 서버)에서 온 것임을 증명할 수있는 지표가 있습니까?

현재 30 분의 캐시 만료가 있습니다. 게재 할 때 최적화하십시오.

답변

1

"쿼리 문자열 사용"을 선택하지 않으면 원하는대로 정확하게 수행됩니다.

주어진 요청에 따라 CDN이 원래 서버로 되돌아 갔는지 여부를 확인하는 것과 관련하여 원본 서버를 소유하고 있습니까? 그래서 당신이 맞았는지 아닌지 알 수 있습니다. 나는 그것이 캐시 히트이거나 캐시 미스 이건간에 CDN의 응답을 보는 것에서 알 수있는 방법이 있는지 확신하지 못한다.

+0

감사의 반응 smarx! 나는이 프로젝트에 대한 내 작업 과정에서 smarxcdn 블로그 게시물을 여러 번 보았습니다. 내 원 서버는 Azure의 프로덕션 웹 역할이며 RDP에 로그를 확인하도록 설정할 수 있는지 확인합니다. – CombYoBeard

+0

웹 사이트의 모든 인스턴스에 원격으로 연결할 수 있었고 Azure CDN에 캐싱되고 내 CDN 끝점에서 "Query String"을 선택하지 않은 채로 이미지가 small.png에 대한 HEAD 요청이 CDN에서 제한되었음을 확인할 수있었습니다 Azure 포털에서 설정. 감사! – CombYoBeard

관련 문제