Проблемы с моими различными веб-серверами
У меня есть несколько веб-камер, и я хочу, чтобы они проходили через лак.
Каждая веб-камера имеет свой собственный веб-сервер. Сначала я хочу добраться до страницы cam.city.travel:4444/cam1/, которая затем показывает камеру 1 и на странице cam.city.travel:4444/cam2/ затем камеру 2 и следующую.
Когда я использую веб-сайт, cam.city.travel:4444/cam1/ воспроизводит адресную строку в cam.city.travel:4444/cgi-bin/image.html. Когда я вставляю / cam1 / (cam.city.travel:4444/cam1/cgi-bin/image.html), появляется только часть страницы. Примеры изображений отсутствуют.
Для ссылки на изображение является cam.city.travel:4444/picture/current.jpg
Пока что моя идея не работает или не возможна с Varnish?
Следующая конфигурация, которую я использую:
#
# varnish configuration
#
vcl 4.0;
backend cam01 { .host = "xxx.xxx.xxx.xx1"; .port = "80"; }
backend cam02 { .host = "xxx.xxx.xxx.xx2"; .port = "80"; }
backend cam03 { .host = "xxx.xxx.xxx.xx3"; .port = "80"; }
backend cam04 { .host = "xxx.xxx.xxx.xx4"; .port = "80"; }
backend cam05 { .host = "xxx.xxx.xxx.xx5"; .port = "80"; }
sub vcl_recv {
set req.http.x-host = req.http.host;
set req.http.x-url = req.url;
set req.http.x-ip = server.ip;
set req.http.x-port = std.port(server.ip);
if (req.http.host == "cam.city.travel:4444")
{
if (req.url ~ "^/cam01/") { set req.url =
regsub(req.url, "^/cam01/", "/"); set req.backend_hint = cam01; }
if (req.url ~ "^/cam02/") { set req.url =
regsub(req.url, "^/cam02/", "/"); set req.backend_hint = cam02; }
if (req.url ~ "^/cam03/") { set req.url =
regsub(req.url, "^/cam03/", "/"); set req.backend_hint = cam03; }
if (req.url ~ "^/cam04/") { set req.url =
regsub(req.url, "^/cam04/", "/"); set req.backend_hint = cam04; }
if (req.url ~ "^/cam05/") { set req.url =
regsub(req.url, "^/cam05/", "/"); set req.backend_hint = cam05; }
set req.http.x-backend = req.backend_hint;
return (pass);
}
}
1 ответ
Звучит так, как если бы вы могли использовать метод кругового подхода с директором, например так:
director cameras round-robin {
{
.backend = cam01;
}
{
.backend = cam02;
}
{
.backend = cam03;
}
{
.backend = cam04;
}
{
.backend = cam05;
}
}
sub vcl_recv {
if (req.http.host ~ "^cam.city.travel$") {
set req.backend = cameras;
}
}
Ссылка: https://www.varnish-cache.org/trac/wiki/LoadBalancing