1 분 동안 제 3 자 페이지 (내 제어 할 수없는 서비스로부터 프록시 됨)에 캐시에 보관되도록 바니시를 구성하려고합니다. 불행히도이 서비스가 중단 될 수 있으며 이로 인해 문제가 내 사이트로 전송됩니다. 이를 방지하기 위해 서비스를 사용할 수 없을 때 로컬 캐시에서 서비스하기를 원합니다.바니시 3.0에 유예를 올바르게 구성하는 방법
나는 grace 및 saint mode의 팁을 따랐다.
내 VCL 파일의 일부 스 니펫을 따르십시오.
백엔드 구성 :
backend external {
.host = "external.acme.com";
.port = "80";
.probe = {
.url = "/page";
.interval = 5s;
.timeout = 5s;
.window = 1;
.threshold = 1;
}
}
vcl_recv :
sub vcl_recv {
set req.backend = my_backend;
...
# redirect onto 3rd part service
if (req.url ~ "www.acme.com:80/page$") {
set req.url = regsub(req.url, "(.*)", "http://external.acme.com/page");
set req.backend = external;
}
if (!req.backend.healthy) {
set req.grace = 2h;
} else {
set req.grace = 10s;
}
...
vcl_fetch :
sub vcl_fetch {
if (beresp.status == 503) {
set beresp.saintmode = 5s;
#set beresp.ttl = 1h;
return (restart);
}
set beresp.grace = 2h;
set beresp.ttl = 2h;
if (req.http.host == "external.acme.com") {
set beresp.http.X-Varnish-Action = "Caching external.acme.com";
set beresp.ttl = 1m;
return(deliver);
}
내가 testin 해요 g의 iptables을 사용하고 구성이 작동하여 원격 서비스의 아래쪽 :
가 3RP 파티 페이지의 OK내 유일한 문제 OK입니다 원격 페이지의
- 프록시입니다 그 : 원격 서비스를 종료하면 제 3 자 페이지가 캐시에 의해 1 분 이상 (TTL은
vcl_fetch
으로 설정 됨)까지 제공됩니다. 이는 원격 페이지를 사용할 수있는 좋은 TTL입니다 ...하지만 원하는 것은 훨씬 더 길게 (2 시간) 계속해서 봉사하십시오.이 내가 거기 읽는 것과 대조적으로 보인다 http://book.varnish-software.com/3.0/Saving_a_request.html#req-grace-and-beresp-grace
내 의심, 나는 은혜 모드로 전환 아니지만, health check을 구성하지에 나는이 문서에서 발견 된 유일한 이유가 있다는 것입니다하지만 난 보면
varnishlog
에 건강 체크가 제대로 실행되는 것을 봅니다 ("아직도 건강합니다", "아프다"...)내가 뭘 놓치고있어? 필요한 것을 얻을 수있는 방법이 있습니까?
varnishlog은 모두가 잘되어 가고
이 로그는 (원격 서버가 있고 실행) 추적 : 이것은 여전히 원격가 다운 될 때 로그 (하지만 무엇
0 Backend_health - external Still healthy 4--X-RH 1 1 1 0.010659 0.010557 HTTP/1.1 200 OK 12 BackendClose - external 12 BackendOpen b external ... 12 TxRequest b GET 12 TxURL b ... 12 TxProtocol b HTTP/1.1 12 TxHeader b Cache-Control: max-age=0 12 TxHeader b Upgrade-Insecure-Requests: 1 12 TxHeader b User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36 12 TxHeader b Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 12 TxHeader b Accept-Encoding: gzip, deflate, sdch, br 12 TxHeader b Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4,de;q=0.2 12 TxHeader b Cookie:... 12 TxHeader b If-None-Match: "6338e-4c0f-54429328f4d3d" 12 TxHeader b If-Modified-Since: Wed, 21 Dec 2016 11:10:16 GMT 12 TxHeader b Via: 1.1 ... 12 TxHeader b X-Forwarded-For: ... 12 TxHeader b X-Forwarded-Host: ... 12 TxHeader b X-Forwarded-Server: ... 12 TxHeader b host: ... 12 TxHeader b X-Varnish: 1305584183 12 RxProtocol b HTTP/1.1 12 RxStatus b 304 12 RxResponse b Not Modified 12 RxHeader b Date: Thu, 22 Dec 2016 09:25:21 GMT 12 RxHeader b Server: Apache/2.2.22 (Debian) 12 RxHeader b ETag: "6338e-4c0f-54429328f4d3d" 12 RxHeader b Vary: Accept-Encoding 12 Fetch_Body b 0(none) cls 0 mklen 0 12 Length b 0 12 BackendReuse b external 3 SessionOpen c ::1 60278 :6081 3 ReqStart c ::1 60278 1305584183 3 RxRequest c GET 3 RxURL c /VirtualHostBase/... 3 RxProtocol c HTTP/1.1 3 RxHeader c Host: localhost:6081 3 RxHeader c Cache-Control: max-age=0 3 RxHeader c Upgrade-Insecure-Requests: 1 3 RxHeader c User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36 3 RxHeader c Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 3 RxHeader c Accept-Encoding: gzip, deflate, sdch, br 3 RxHeader c Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4,de;q=0.2 3 RxHeader c Cookie:... 3 RxHeader c If-None-Match: "6338e-4c0f-54429328f4d3d" 3 RxHeader c If-Modified-Since: Wed, 21 Dec 2016 11:10:16 GMT 3 RxHeader c Via: 1.1 ... 3 RxHeader c X-Forwarded-For: ... 3 RxHeader c X-Forwarded-Host: ... 3 RxHeader c X-Forwarded-Server: ... 3 RxHeader c Connection: Keep-Alive 3 VCL_call c recv pass 3 VCL_call c hash 3 Hash c http://... 3 Hash c ... 3 VCL_return c hash 3 VCL_call c pass pass 3 Backend c 12 external external 3 TTL c 1305584183 RFC -1 -1 -1 1482398514 0 1482398721 0 0 3 VCL_call c fetch 3 TTL c 1305584183 VCL -1 7200 -1 1482398514 -0 3 TTL c 1305584183 VCL 7200 7200 -1 1482398514 -0 3 TTL c 1305584183 VCL 60 7200 -1 1482398514 -0 3 VCL_return c deliver 3 ObjProtocol c HTTP/1.1 3 ObjResponse c Not Modified 3 ObjHeader c Date: Thu, 22 Dec 2016 09:25:21 GMT 3 ObjHeader c Server: Apache/2.2.22 (Debian) 3 ObjHeader c ETag: "6338e-4c0f-54429328f4d3d" 3 ObjHeader c Vary: Accept-Encoding 3 ObjHeader c X-Varnish-Action: Caching external.acme.com 3 VCL_call c deliver deliver 3 TxProtocol c HTTP/1.1 3 TxStatus c 304 3 TxResponse c Not Modified 3 TxHeader c Server: Apache/2.2.22 (Debian) 3 TxHeader c ETag: "6338e-4c0f-54429328f4d3d" 3 TxHeader c Vary: Accept-Encoding 3 TxHeader c X-Varnish-Action: Caching external.acme.com 3 TxHeader c Accept-Ranges: bytes 3 TxHeader c Date: Thu, 22 Dec 2016 09:21:53 GMT 3 TxHeader c X-Varnish: 1305584183 3 TxHeader c Age: 0 3 TxHeader c Via: 1.1 varnish 3 TxHeader c Connection: keep-alive 3 Length c 0 3 ReqEnd c 1305584183 1482398513.625868082 1482398513.630025387 0.000263691 0.004073620 0.000083685 3 SessionClose c EOF 3 StatSess c ::1 60278 0 1 1 0 1 1 290 0 0 CLI - Rd ping 0 CLI - Wr 200 19 PONG 1482398514 1.0 0 CLI - Rd ping 0 CLI - Wr 200 19 PONG 1482398517 1.0 0 Backend_health - external Still healthy 4--X-RH 1 1 1 0.010621 0.010573 HTTP/1.1 200 OK
0 CLI - Rd ping 0 CLI - Wr 200 19 PONG 1482398997 1.0 0 Backend_health - external Went sick ------- 0 1 1 0.000000 0.010652 0 CLI - Rd ping 0 CLI - Wr 200 19 PONG 1482399000 1.0 3 SessionOpen c ::1 60382 :6081 3 ReqStart c ::1 60382 1305584190 3 RxRequest c GET 3 RxURL c /VirtualHostBase/https/... 3 RxProtocol c HTTP/1.1 3 RxHeader c Host: localhost:6081 3 RxHeader c Pragma: no-cache 3 RxHeader c Cache-Control: no-cache 3 RxHeader c Upgrade-Insecure-Requests: 1 3 RxHeader c User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36 3 RxHeader c Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 3 RxHeader c Accept-Encoding: gzip, deflate, sdch, br 3 RxHeader c Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4,de;q=0.2 3 RxHeader c Cookie: ... 3 RxHeader c Via: 1.1 ... 3 RxHeader c X-Forwarded-For: ... 3 RxHeader c X-Forwarded-Host: ... 3 RxHeader c X-Forwarded-Server: ... 3 RxHeader c Connection: Keep-Alive 3 VCL_call c recv lookup 3 VCL_call c hash 3 Hash c http://... 3 Hash c ... 3 VCL_return c hash 3 Hit c 1305584185 3 VCL_call c hit deliver 3 VCL_call c deliver deliver 3 TxProtocol c HTTP/1.1 3 TxStatus c 200 3 TxResponse c OK 3 TxHeader c Server: Apache/2.2.22 (Debian) 3 TxHeader c Access-Control-Allow-Origin: * 3 TxHeader c Last-Modified: Wed, 21 Dec 2016 11:10:16 GMT 3 TxHeader c ETag: "6338e-4c0f-54429328f4d3d" 3 TxHeader c Vary: Accept-Encoding 3 TxHeader c Content-Encoding: gzip 3 TxHeader c Content-Type: text/html 3 TxHeader c X-Varnish-Action: Caching external.acme.com 3 TxHeader c Content-Length: 4367 3 TxHeader c Accept-Ranges: bytes 3 TxHeader c Date: Thu, 22 Dec 2016 09:30:03 GMT 3 TxHeader c X-Varnish: 1305584190 1305584185 3 TxHeader c Age: 39 3 TxHeader c Via: 1.1 varnish 3 TxHeader c Connection: keep-alive 3 Length c 4367 3 ReqEnd c 1305584190 1482399003.173985004 1482399003.174190044 0.000112534 0.000087976 0.000117064 3 SessionClose c EOF 3 StatSess c ::1 60382 0 1 1 0 0 0 441 4367 0 CLI - Rd ping 0 CLI - Wr 200 19 PONG 1482399003 1.0 0 CLI - Rd ping 0 CLI - Wr 200 19 PONG 1482399006 1.0
을 그리고 마지막으로이 오류가 나는보다 더 후 (이상 TTL 후 얻을 : TTL에 도달하지 않은 것처럼) 캐시 된 콘텐츠를 분)
0 CLI - Rd ping 0 CLI - Wr 200 19 PONG 1482399282 1.0 0 CLI - Rd ping 0 CLI - Wr 200 19 PONG 1482399285 1.0 12 SessionOpen c ::1 60412 :6081 12 ReqStart c ::1 60412 1305584191 12 RxRequest c GET 12 RxURL c /VirtualHostBase/https/... 12 RxProtocol c HTTP/1.1 12 RxHeader c Host: localhost:6081 12 RxHeader c Cache-Control: max-age=0 12 RxHeader c Upgrade-Insecure-Requests: 1 12 RxHeader c User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36 12 RxHeader c Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 12 RxHeader c Accept-Encoding: gzip, deflate, sdch, br 12 RxHeader c Accept-Language: it-IT,it;q=0.8,en-US;q=0.6,en;q=0.4,de;q=0.2 12 RxHeader c Cookie: ... 12 RxHeader c If-None-Match: "6338e-4c0f-54429328f4d3d" 12 RxHeader c If-Modified-Since: Wed, 21 Dec 2016 11:10:16 GMT 12 RxHeader c Via: 1.1 ... 12 RxHeader c X-Forwarded-For: ... 12 RxHeader c X-Forwarded-Host: ... 12 RxHeader c X-Forwarded-Server: ... 12 RxHeader c Connection: Keep-Alive 12 VCL_call c recv pass 12 VCL_call c hash 12 Hash c http://... 12 Hash c ... 12 VCL_return c hash 12 VCL_call c pass pass 12 FetchError c no backend connection 12 VCL_call c error deliver 12 VCL_call c deliver deliver 12 TxProtocol c HTTP/1.1 12 TxStatus c 503 12 TxResponse c Service Unavailable 12 TxHeader c Server: Varnish 12 TxHeader c Content-Type: text/html; charset=utf-8 12 TxHeader c Retry-After: 5 12 TxHeader c Content-Length: 419 12 TxHeader c Accept-Ranges: bytes 12 TxHeader c Date: Thu, 22 Dec 2016 09:34:48 GMT 12 TxHeader c X-Varnish: 1305584191 12 TxHeader c Age: 0 12 TxHeader c Via: 1.1 varnish 12 TxHeader c Connection: close 12 Length c 419 12 ReqEnd c 1305584191 1482399288.281390190 1482399288.281631470 0.000269890 0.000148058 0.000093222 12 SessionClose c error 12 StatSess c ::1 60412 0 1 1 0 1 0 257 419 0 CLI - Rd ping 0 CLI - Wr 200 19 PONG 1482399288 1.0 0 Backend_health - external Still sick ------- 0 1 1 0.000000 0.010652 0 CLI - Rd ping 0 CLI - Wr 200 19 PONG 1482399291 1.0
답장을 보내 주셔서 감사합니다. 재시작 설명을 위해 (완전히 빠졌습니다). 불행히도'return (restart)'을 제거해도 아무 것도 변경되지 않았습니다. 1 분 동안 캐시 된 컨텐츠를 얻은 다음 503 –
의 Varnish 오류가 발생했습니다. 오류 요청에 대한 로그를 게시 할 수 있으면 문제를 쉽게 식별 할 수 있습니다. varnishlog를 시도하고 위조 된 요청에 대한 모든 데이터를 게시하면 내 대답을 편집하게되어 기쁩니다. 또한 Varnish를 버전 4로 업그레이드 할 것을 제안합니다. 성능에 대한 몇 가지 큰 개선 사항과 요청 및 반입 방법 처리 방법이 있습니다. – alejdg
안녕하세요 다시 @alejdg 나는 varnishlog 정보를 추가하여 질문을 편집했습니다. –