1
VCL에서 varnish-counters를 사용할 수 있습니까?Varnish-counters 사용 MAIN. * in VCL
내가 MAIN.backend_conn의 현재 값을 기준으로 조건을 작성하려하지만
현재 솔루션
이제 나는 심지어 인라인 C에서 VCL 통계를 사용할 수 있는지 여부를 내가 알아낼 수 없습니다
-이 추천하여 구성 이상의 활성 연결이있는 경우, 활성 연결하고 에러를 유발backend default {
.host = "192.168.122.11";
.probe = {
.url = "/check-connections.php";
.interval = 1s;
.threshold = 4;
}
}
backend sessionWorker {
.host = "192.168.122.11";
.probe = {
.url = "/other-probe";
.interval = 5s;
.threshold = 2;
}
}
sub vcl_recv {
if (req.http.cookie ~ "(^|;\s*)(SESS=)" || std.healthy(req.backend_hint)) {
set req.backend_hint = sessionWorker;
} else {
return (synth(503, "Server overloaded"));
}
}
체크 connections.php는 Nginx의 상태를 읽어 691,363,210
if ($active > 10) {
http_response_code(502);
} else {
http_response_code(200);
}
나는 VCL에서 직접 백엔드에 현재 연결 (VBE.conn)와 std.healty (req.backend_hint)를 교체하는 방법을 해결책을 찾기 위해 싶습니다
.
bereq.retries는 내가 찾고있는 것이 아닙니다. VCL에서 사용할 수있는 변수가 거의 없다는 것을 알고 있습니다. (https://www.varnish-cache.org/docs/trunk/reference/vcl.html#variables) [VBE.conn]을 사용하고 싶습니다. (사용 가능한 카운터 목록에서 https://www.varnish-cache.org/docs/trunk/reference/varnish-counters.html#per-backend-counters-vbe)를 클릭하십시오. 그러나 VCL에서 해당 카운터를 사용하는 방법을 알지 못합니다. – adrive