백엔드에서 500 오류가 발생한 경우 Varnish의 동작을 이해할 수 없습니다. -MAIN.n_object 카운터를 증가시키는 이유는 무엇입니까? 20x 만 캐시하고 리디렉션해야한다고 생각합니다. -첫 번째 요청이 백엔드에서 500 개의 응답으로 완료되면 백엔드가 시작 되더라도 동일한 URL에 대한 모든 후속 요청이 캐싱되지 않고 200 개의 응답을 반환합니다. 이 논리를 이해하도록 도와주세요.
실제로 기본 VCL을 사용하는 경우 기본 논리는 설명하는대로입니다. 그러나 잠시 후에 캐싱을 시작한다는 사실을 놓치고 있습니다. 일반적으로 2 분.
이것은 hit-for-pass 를 구현하는 데 필요합니다. 내 이해는 다음과 같습니다. Varnish는 기본적으로 백엔드에 요청을 쌓고 최적화를 위해 도착할 때 보내지 않습니다. Varnish가 캐시 할 수없는 항목 (500 상태 등)을 발견하면 누적 동작을 수행하지 않고 백엔드와 직접 대화합니다 (히트 포 패스).
페이지가 hit-for-pass로 표시되는 시간을 줄이려면 VCL을 추가해야합니다. 이렇게하면 120 초 값이있는 내장 VCL이 실행되지 않습니다. 다음은 500 상태의 페이지를 10 초 동안 캐시 할 수 없음으로 표시합니다.
sub vcl_backend_response {
if (beresp.status == 500) {
set beresp.ttl = 10s;
set beresp.uncacheable = true;
return (deliver);
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다