다른 두 컴퓨터의 로드 균형을 맞추는 컴퓨터의 default.vcl varnish 파일에 현재 구성이 활성화되어 있습니다(다른 두 컴퓨터에도 varnish가 활성화되어 있습니다).
내 의도는 이 서버가 로드 밸런싱만 수행하고 다른 시스템은 처리와 자체 캐싱을 수행하도록 하는 것입니다.
내 문제는 구성 테스트(스트레스 테스트도 아니고 1분에 몇 번의 요청)를 수행해도 전문가 명상 오류가 발생하고 광택제를 다시 시작해야 한다는 것입니다.
이는 로드 밸런싱 서버의 default.vcl입니다.
backend vader {
.host = "app1.server.com";
.probe = {
.url = "/";
.interval = 10s;
.timeout = 4s;
.window = 5;
.threshold = 3;
}
}
backend malgus {
.host = "app2.server.com";
.probe = {
.url = "/";
.interval = 10s;
.timeout = 4s;
.window = 5;
.threshold = 3;
}
}
director dooku round-robin {
{
.backend = vader;
}
{
.backend = malgus;
}
}
sub vcl_recv {
if (req.http.host ~ "^balancer.server.com$") {
set req.backend = dooku;
}
}
내가 뭔가 잘못하고 있거나 뭔가를 놓치고 있습니까?
편집하다:
이것은 varnishlog의 출력입니다.
0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1345839995 1.0
0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1345839998 1.0
0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1345840001 1.0
0 Backend_health - malgus Still sick 4--X--- 0 3 5 0.000000 3.846876
0 Backend_health - vader Still sick 4--X--- 0 3 5 0.000000 3.839194
0 CLI - Rd ping
0 CLI - Wr 200 19 PONG 1345840004 1.0
14 SessionOpen c 10.150.7.151 38272 :80
14 ReqStart c 10.150.7.151 38272 458200540
14 RxRequest c GET
14 RxURL c /
14 RxProtocol c HTTP/1.1
14 RxHeader c Host: dooku-dev.excelsior.com
14 RxHeader c Connection: keep-alive
14 RxHeader c User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11
14 RxHeader c Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
14 RxHeader c Accept-Encoding: gzip,deflate,sdch
14 RxHeader c Accept-Language: en-US,en;q=0.8,es-419;q=0.6,es;q=0.4
14 RxHeader c Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
14 RxHeader c Cookie: SESSa87d6c6da0c61037a9169122dc5e4a19=HR_0Srhgc-uDArT3aJFzOBy31FtzneTXg38byr1eGMU; __atuvc=4%7C33
14 VCL_call c recv pass
14 VCL_call c hash
14 Hash c /
14 Hash c dooku-dev.excelsior.com
14 VCL_return c hash
14 VCL_call c pass pass
14 FetchError c no backend connection
14 VCL_call c error deliver
14 VCL_call c deliver deliver
14 TxProtocol c HTTP/1.1
14 TxStatus c 503
14 TxResponse c Service Unavailable
14 TxHeader c Server: Varnish
14 TxHeader c Content-Type: text/html; charset=utf-8
14 TxHeader c Retry-After: 5
14 TxHeader c Content-Length: 418
14 TxHeader c Accept-Ranges: bytes
14 TxHeader c Date: Fri, 24 Aug 2012 20:26:44 GMT
14 TxHeader c X-Varnish: 458200540
14 TxHeader c Age: 0
14 TxHeader c Via: 1.1 varnish
14 TxHeader c Connection: close
14 Length c 418
14 ReqEnd c 458200540 1345840004.916415691 1345840004.965190172 0.020933390 0.048741817 0.000032663
14 SessionClose c error
14 StatSess c 10.150.7.151 38272 0 1 1 0 1 0 256 418
14 SessionOpen c 10.150.7.151 38273 :80
14 ReqStart c 10.150.7.151 38273 458200541
14 RxRequest c GET
14 RxURL c /favicon.ico
14 RxProtocol c HTTP/1.1
14 RxHeader c Host: dooku-dev.excelsior.com
14 RxHeader c Connection: keep-alive
14 RxHeader c Accept: */*
14 RxHeader c User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11
14 RxHeader c Accept-Encoding: gzip,deflate,sdch
14 RxHeader c Accept-Language: en-US,en;q=0.8,es-419;q=0.6,es;q=0.4
14 RxHeader c Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
14 RxHeader c Cookie: SESSa87d6c6da0c61037a9169122dc5e4a19=HR_0Srhgc-uDArT3aJFzOBy31FtzneTXg38byr1eGMU; __atuvc=4%7C33
14 VCL_call c recv pass
14 VCL_call c hash
14 Hash c /favicon.ico
14 Hash c dooku-dev.excelsior.com
14 VCL_return c hash
14 VCL_call c pass pass
14 FetchError c no backend connection
14 VCL_call c error deliver
14 VCL_call c deliver deliver
14 TxProtocol c HTTP/1.1
14 TxStatus c 503
14 TxResponse c Service Unavailable
14 TxHeader c Server: Varnish
14 TxHeader c Content-Type: text/html; charset=utf-8
14 TxHeader c Retry-After: 5
14 TxHeader c Content-Length: 418
14 TxHeader c Accept-Ranges: bytes
14 TxHeader c Date: Fri, 24 Aug 2012 20:26:45 GMT
14 TxHeader c X-Varnish: 458200541
14 TxHeader c Age: 0
14 TxHeader c Via: 1.1 varnish
14 TxHeader c Connection: close
14 Length c 418
14 ReqEnd c 458200541 1345840005.226389885 1345840005.226457834 0.000026941 0.000043154 0.000024796
14 SessionClose c error
14 StatSess c 10.150.7.151 38273 0 1 1 0 1 0 256 418
답변1
서버에 연결 문제가 있습니다. 백엔드에서 DNS 주소를 사용하고 계신 것으로 확인됩니다. Varnish는 시작 시 DNS를 확인하고 런타임 시 변경 사항을 확인하지 않습니다.
Varnish가 시작된 이후 FQDN 대상을 변경했습니까?
귀하의 DNS가 동적 주소를 대상으로 하고 있습니까?
DNS 이름 대신 고정 IP를 사용해 보세요.
답변2
백엔드 서버가 요청을 처리하는 데 많은 시간이 걸리는 것으로 나타났습니다. 내 아키텍처를 unvarnish 로드 밸런서에서 각 서버 및 로드 밸런서의 하나로 변경했습니다.