2012-02-07 6 views
2

만료 된 개체를 가져 오는 동안 이전 개체를 제공하거나 최대 연결을 최대 어떻게 처리 할 수 ​​있습니까?바니시는 새로 고침하는 동안 오래된 개체를 제공합니다.

나는 ib_recv와 vcl_fetch 모두에서 유예 기간을 구성했습니다.

심지어 저는 aint² 모드를 사용하여 캐시 된 객체를 돌려 주려고했습니다.

누군가 내게이 문제에 도움을 줄 수 있습니까?

sub vcl_recv { 

# Purge through http 
if (req.request == "PURGE") { 
if (!client.ip ~ purge) { 
error 405 "Not allowed."; 
} 
ban("req.url ~ " + req.url); 
error 200 "Purged."; 
} 

# Unset all cookies available 
if (req.http.cookie) { 
unset req.http.cookie; 
} 

if (req.request != "GET" && req.request != "HEAD") { 
/* We only deal with GET and HEAD by default */ 
return (pass); 
} 

# Adding Grace period in case backend lags 
set req.grace = 3d; 
return (lookup); 
} 
.... 
sub vcl_fetch { 
set beresp.grace = 4d; 
set beresp.saintmode = 50s; 
set beresp.ttl = 30s; 
return (deliver); 
} 
#### 캐시 요청 VARNISHLOG
0 Debug  - "lurker: 0x7f244cfd1e00 30 0" 
0 Debug  - "lurker: 0x7f244cfd1e00 30 0" 
0 Debug  - "lurker: 0x7f244cfd1e00 30 0" 
0 Debug  - "lurker: 0x7f244cfd1e00 30 0" 
0 Debug  - "lurker: 0x7f244cfd1e00 30 0" 
0 Debug  - "lurker: 0x7f244cfd1e00 30 0" 
0 Debug  - "lurker: 0x7f244cfd1e00 30 0" 
11 SessionOpen c XXX.XXX.XXX.XXX 60750 XXX.XXX.XXX.XXX:2002 
11 ReqStart  c XXX.XXX.XXX.XXX 60750 479090107 
11 RxRequest c GET 
11 RxURL  c /image/1156499/1601812475/45010cb14311wq1fd2da042ed599f3ad917005085c400/1181_615/crop 
11 RxProtocol c HTTP/1.0 
11 RxHeader  c Host: URL 
11 RxHeader  c X-Real-IP: XXX.XXX.XXX.XXX 
11 RxHeader  c X-Forwarded-For: XXX.XXX.XXX.XXX 
11 RxHeader  c Connection: close 
11 RxHeader  c User-Agent: GraphicalHttpClient 1.0.6 (Macintosh; Mac OS X 10.6.8; en_NL) 
11 VCL_call  c recv lookup 
11 VCL_call  c hash 
11 Hash   c /image/1156499/1601812475/45010cb14311wq1fd2da042ed599f3ad917005085c400/1181_615/crop 
11 Hash   c URL 
11 VCL_return c hash 
11 Hit   c 479090015 
11 VCL_call  c hit deliver 
11 VCL_call  c deliver deliver 
11 TxProtocol c HTTP/1.1 
11 TxStatus  c 200 
11 TxResponse c OK 
11 TxHeader  c Server: nginx/1.0.11 
11 TxHeader  c Content-Type: image/jpeg 
11 TxHeader  c Content-Transfer-Encoding: binary 
11 TxHeader  c Cache-Control: must-revalidate 
11 TxHeader  c Content-Length: 125395 
11 TxHeader  c Accept-Ranges: bytes 
11 TxHeader  c Date: Tue, 07 Feb 2012 14:23:00 GMT 
11 TxHeader  c X-Varnish: 479090107 479090015 
11 TxHeader  c Age: 5693 
11 TxHeader  c Via: 1.1 varnish 
11 TxHeader  c Connection: close 
11 Length  c 125395 
11 ReqEnd  c 479090107 1328624580.355833769 1328624580.357449532 0.000084162 0.000103474 0.001512289 
11 SessionClose c Connection: close 
11 StatSess  c XXX.XXX.XXX.XXX 60750 0 1 1 0 0 0 29 
#### 캐시 요청이 흥미로운 질문이다
12 BackendOpen b live XXX.XXX.XXX.XXX 41945 XXX.XXX.XXX.XXX 80 
12 TxRequest b GET 
12 TxURL  b /image/1156499/1601812475/45010cb14311wq1fd2da042ed599f3ad917005085c400/1181_615/crop 
12 TxProtocol b HTTP/1.1 
12 TxHeader  b Host: URL 
12 TxHeader  b X-Real-IP: XXX.XXX.XXX.XXX 
12 TxHeader  b X-Forwarded-For: XXX.XXX.XXX.XXX 
12 TxHeader  b User-Agent: GraphicalHttpClient 1.0.6 (Macintosh; Mac OS X 10.6.8; en_NL) 
12 TxHeader  b X-Varnish: 479090118 
12 TxHeader  b Accept-Encoding: gzip 
12 RxProtocol b HTTP/1.1 
12 RxStatus  b 200 
12 RxResponse b OK 
12 RxHeader  b Server: nginx/1.0.11 
12 RxHeader  b Date: Tue, 07 Feb 2012 14:26:00 GMT 
12 RxHeader  b Content-Type: image/jpeg 
12 RxHeader  b Connection: keep-alive 
12 RxHeader  b Content-Transfer-Encoding: binary 
12 RxHeader  b Cache-Control: must-revalidate 
12 RxHeader  b Content-Length: 125395 
12 Fetch_Body b 4(length) cls 0 mklen 1 
12 Length  b 125395 
12 BackendReuse b live 
11 SessionOpen c XXX.XXX.XXX.XXX 50429 XXX.XXX.XXX.XXX:2002 
11 ReqStart  c XXX.XXX.XXX.XXX 50429 479090118 
11 RxRequest c GET 
11 RxURL  c /image/1156499/1601812475/45010cb14311wq1fd2da042ed599f3ad917005085c400/1181_615/crop 
11 RxProtocol c HTTP/1.0 
11 RxHeader  c Host: URL 
11 RxHeader  c X-Real-IP: XXX.XXX.XXX.XXX 
11 RxHeader  c X-Forwarded-For: XXX.XXX.XXX.XXX 
11 RxHeader  c Connection: close 
11 RxHeader  c User-Agent: GraphicalHttpClient 1.0.6 (Macintosh; Mac OS X 10.6.8; en_NL) 
11 VCL_call  c recv lookup 
11 VCL_call  c hash 
11 Hash   c /image/1156499/1601812475/45010cb14311wq1fd2da042ed599f3ad917005085c400/1181_615/crop 
11 Hash   c URL 
11 VCL_return c hash 
11 VCL_call  c miss fetch 
11 Backend  c 12 live live 
11 TTL   c 479090118 RFC 120 -1 -1 1328624761 0 1328624760 0 0 
11 VCL_call  c fetch 
11 TTL   c 479090118 VCL 33 -1 -1 1328624758 -3 
11 TTL   c 479090118 VCL 33 40 -1 1328624758 -3 
11 VCL_return c deliver 
11 ObjProtocol c HTTP/1.1 
11 ObjResponse c OK 
11 ObjHeader c Server: nginx/1.0.11 
11 ObjHeader c Date: Tue, 07 Feb 2012 14:26:00 GMT 
11 ObjHeader c Content-Type: image/jpeg 
11 ObjHeader c Content-Transfer-Encoding: binary 
11 ObjHeader c Cache-Control: must-revalidate 
11 VCL_call  c deliver deliver 
11 TxProtocol c HTTP/1.1 
11 TxStatus  c 200 
11 TxResponse c OK 
11 TxHeader  c Server: nginx/1.0.11 
11 TxHeader  c Content-Type: image/jpeg 
11 TxHeader  c Content-Transfer-Encoding: binary 
11 TxHeader  c Cache-Control: must-revalidate 
11 TxHeader  c Content-Length: 125395 
11 TxHeader  c Accept-Ranges: bytes 
11 TxHeader  c Date: Tue, 07 Feb 2012 14:26:00 GMT 
11 TxHeader  c X-Varnish: 479090118 
11 TxHeader  c Age: 0 
11 TxHeader  c Via: 1.1 varnish 
11 TxHeader  c Connection: close 
11 Length  c 125395 
11 ReqEnd  c 479090118 1328624757.532856941 1328624760.899299860 0.000095606 3.364968061 0.001474857 
11 SessionClose c Connection: close 
11 StatSess  c XXX.XXX.XXX.XXX 50429 3 1 1 0 0 1 284 125395 
0 Debug  - "lurker: 0x7f244cfd1e00 30 0" 
+0

희망

체크 아웃 [기술적으로 비동기 가져 오기는 다음과 같은 수 없습니다] 없습니다 Varnish 메일 링리스트에서 이미 질문을 받았다면 VCL을 확장하여 페이지가 캐시되고 있는지 확인하십시오. 이 경우 varnishlog 호출의 출력을 제공하십시오. – Mojah

+0

에 요청 된 varnislog 항목이 추가되었습니다. 첫 번째는 저에게 좋은 히트를 보여줍니다. 두 번째 부분은 만료 된 것입니다. req.grace가 30s로 설정됩니다. // beresp.ttl이 30s로 설정됩니다. // beresp.grace가 40s로 설정됩니다. –

답변

3

VARNISHLOG 만료되었습니다. 백 엔드에서 하나의 사본을 가져 오는 동안 DOC

여러 클라이언트가 동일한 페이지를 요청하는

에서

니스는 백엔드에 하나의 요청을 보내 보류 다른 사람을 배치합니다.

따라서 언제든지 유예를 사용하도록 설정 한 경우에도 클라이언트가 차단됩니다. Grace는 Varnish에게 첫 번째 사람이 새로 고침 할 콘텐츠가있을 때까지 다른 모든 n-1 고객에게 부실 콘텐츠를 제공 할 수 있음을 알립니다. 한 남자 것을 차단을 해제 할 수있는 방법 나는 당신이 실제로 요구하는 것은 다음 버전에 대한 계획 기능이라고 생각이 좋은 article 내가이 같이

관련 문제