2016-11-07 5 views
0

백엔드가 괜찮을 때마다 데이터를 직접 반환하고 캐시를 업데이트하려면 바니시가 필요합니다. 또한 백엔드가 다운되었을 때 캐시에서 마지막 일반 beresq 데이터를 반환하는 바니시가 필요합니다. 내가 바니쉬로하는 일은 어때?백엔드가 정상 상태 일 때 바니시를 사용하여 데이터를 전달하는 방법 & 백엔드가 종료되었을 때 마지막 정상 beresq를 반환하는 방법?

+0

나는 그저 슬러브한다. – Anien

답변

0

나는 단지 그것을 마셔야한다. 백엔드가 작동하면 req.hash_always_miss = true를 사용하여 데이터를 전달하십시오. 백엔드가 종료되면 FEATCH_FAILED에 응답하고 vcl_synth를 사용하여 recv를 다시 시작하십시오.

vcl 4.0; 

backend default { 
    .host = "127.0.0.1"; 
    .port = "4567"; 
} 

sub vcl_recv { 
    if (req.restarts == 0) { 
     set req.hash_always_miss=true; 
    } else { 
     set req.hash_always_miss=false; 
    } 
} 

sub vcl_backend_error { 
    return (abandon); 
} 

sub vcl_synth { 
    return (restart); 
}