2011-09-06 3 views
0

구성을 건드리지 않고 바니시를 사용하고 있습니다 (Apache 로의 포트 전달은 8080). 나는 이미지를 삭제하고, 내가 다시 방문 나는 이미지의 URL을 방문너무 많은 파일을 캐싱하고 PHP를 캐싱하지 않는 바니시

  • 그것은 존재 ... 니스는 그것을 캐시 ... 난 처음 보는 니스를 알 수있는 방법 :

    는하지만 두 가지 문제를 가지고 그의 캐시에서 파일을 제공하기 전에 파일이 존재한다면?

  • PHP 파일이 캐시되지 않습니다. 즉, PHP에서 생성 된 HTML 콘텐츠입니다. 나는 헤더에서 항상 본다 : 나이 : 0 ... 어떤 단서?

고맙습니다!

답변

1

나는 이미지의 URL을 방문,이 존재 나는 이미지를 삭제하고 다시 방문하고 ... 니스는 그것을 캐시 ... 내가 파일이 AT LEAST를 제공하기 전에 존재하는 경우 첫째 를보고 니스를 알 수있는 방법 그의 캐시에서?

어는 캐시의 전체 목적은 또 다시 (파일을로드 존재 & 검사 또는 PHP 응답을 생성 같은) 동일한 일을하고, 필요하지 않고, 생성 된 응답을 재사용. "파일이 적어도 존재하는지"를 확인하지 못하도록 (백엔드 서버가 계산 한) 일부 파일의 존재에 대해 결코 새로운 것을 알지 못합니다.

그러나 바니시가 URL을 영원히 캐시하지 않도록 지시 할 수있는 방법이 있습니다. 예를 들면; 백엔드 응답에서 캐시가 결과를 재사용하지 않도록 지시하는 경우 (특정 HTTP 응답 헤더가이를 나타냄) 니스는 캐시하지 않습니다. Varnish는 쿠키로 응답을 캐시하지 않으려면 (기본적으로) 똑똑 할 것입니다 (아마도 두 번째 질문에 답할 것입니다). 특정 기간 (예 : 30 초) 동안 응답 만 캐시하도록 바니시에 알릴 수 있으므로 삭제 내용이 매우 빠르게 수집됩니다. 파일을 변경/삭제 한 후에는 바니시에서 URL을 PURGE 할 수 있습니다. 백엔드 서버가 응답 헤더를 사용하여 올바르게 알려주지 않으면 자신의 .vcl 파일을 작성하여이 동작을 무시할 수 있습니다.

PHP 파일이 캐싱되지 않습니다. (즉, HTML 콘텐츠가 PHP에 의해 을 생성했습니다). 나는 헤더에서 항상 본다 : 나이 : 0 ... 어떤 단서?

내가 추측 할 수있는 것은 쿠키를 설정하는 것입니다. 그러나 질문에 응답 헤더를 추가하면 정말 도움이됩니다.