두 개의 서버 web1 및 web2가 있으며 각 서버에는 아파치와 광택이 실행됩니다. 로드 밸런싱은 지속 시간이 30 분입니다.여러 광택 캐시 서버 동기화
Google 테스트에서 한 페이지의 니스 (예 : web1)에는 페이지가 캐시되지만 web2의 니스에는 캐시되지 않은 경우가 있습니다.
동기화 상태를 유지하는 방법이 있습니까? 따라서 web1에서 페이지가 캐싱 (또는 제거) 될 때 web2에로드되거나 제거됩니다.
감사합니다.
두 개의 서버 web1 및 web2가 있으며 각 서버에는 아파치와 광택이 실행됩니다. 로드 밸런싱은 지속 시간이 30 분입니다.여러 광택 캐시 서버 동기화
Google 테스트에서 한 페이지의 니스 (예 : web1)에는 페이지가 캐시되지만 web2의 니스에는 캐시되지 않은 경우가 있습니다.
동기화 상태를 유지하는 방법이 있습니까? 따라서 web1에서 페이지가 캐싱 (또는 제거) 될 때 web2에로드되거나 제거됩니다.
감사합니다.
하나의 바니시를 다른 바니시의 백엔드로 사용할 수 있습니다.
당신은 같은 것을 수행 할 수 있습니다
// use random director so you can fall back to web
director varnish random {
{
.backend = varnish2;
.weight = 100000000;
}
{
.backend = web;
.weight = 1;
}
}
acl othervarnish {
"{hostname}";
}
sub vcl_recv {
set req.backend = web;
// switch backend to varnish only if you haven't come from there
if (!client.ip ~ othervarnish) {
set req.backend = varnish;
}
}
을하지만이 doesn't work with ESIs 것 같다 있습니다.
나는 또한 동등한 문제를 해결하기위한 해결책을 찾고 있지만 아직 찾지 못했습니다.
해결 방법이 될 수있다 :
이 당신의 웹 서버 전에 HAProxy을 넣고 끈적 끈적한 세션을 활성화합니다. 따라서 사용자는 전에 방문한 하나의 바니시 서버로만 연결되며 동일한 캐시 된 데이터를 보유합니다.바니시를 올바르게 제거하려면 스크립트 또는 응용 프로그램이 모든 바니시 서버 목록을 반복하여 하나씩 제거해야합니다.
내 의견으로는이 솔루션은 권장하지 않습니다. 바니시는 모든 서버가 시간 경과에 따라 동기화 할 수있는 그리드 설정을 지원해야합니다 (결과 일관성).
감사합니다. @Pax. 두 개의 광택 서버를 '병렬'로 사용하는 방법은 없습니다. 우리는 절반이 실패 할 경우에 대비하여 두 가지 선행을합니다. 저 여분을 유지하는 것이 좋을. –