Я пытаюсь измерить отдельную статистику для двух различных версий веб-страницы. Таким образом, я должен перенаправить определенный процент от своего веб-трафика к другой странице, чем та, которую требуют (т.е. 20% запросов на page_1 переходят к page_1.1).
Мне не кажется, что Лак может исходно считать трафик или запросы.
Я думаю, что у меня могло быть количество бэкенда Apache запросы, вставить пользовательский заголовок и затем иметь Лак, отправляют перезапуск клиенту, если ответ бэкенда содержит тот определенный заголовок.
Какие-либо идеи или предложения?
Удачи,
Jeremy
Править: Я забыл упоминать, что существует HAProxy istance перед Лаком, таким образом, я думал, что иначе, чтобы сделать это могло быть:
На HAProxy:
считайте запросы на page1
если количество> 80 вставляет пользовательский заголовок
если количество = 100 счетчиков сброса
На лаке
если пользовательский заголовок, существующий в запросе, выходит, клиентский перезапуск с page1 —> page1.1 переписывают
Не уверенный, как сделать это с ACL, gpc0 и таблицы палки. Я учусь для нахождения решения :-)
Как всегда, идеи или предложения являются больше, чем приветствие
Мне никогда не приходилось настраивать сервер Varnish, но я полагаю, что это возможно с помощью встроенного балансировщика нагрузки с циклической конфигурацией.
Например, , если вы настроили 4 бэкэнда, указывающих на старую версию вашего сайта / страницы и 1 на новую версию, вот так ..
backend old1 {
.host = "old.example.com";
.probe = { .url = "/"; .interval = 5s; .timeout = 1 s; .window = 5; .threshold = 3; }
}
backend old2 {
.host = "old.example.com";
.probe = { .url = "/"; .interval = 5s; .timeout = 1 s; .window = 5; .threshold = 3; }
}
backend old3 {
.host = "old.example.com";
.probe = { .url = "/"; .interval = 5s; .timeout = 1 s; .window = 5; .threshold = 3; }
}
backend old4 {
.host = "old.example.com";
.probe = { .url = "/"; .interval = 5s; .timeout = 1 s; .window = 5; .threshold = 3; }
}
backend new {
.host = "new.example.com";
.probe = { .url = "/"; .interval = 5s; .timeout = 1 s; .window = 5; .threshold = 3; }
}
И затем у вас был директор, который циклически перемещался между ними ...
director blah round-robin {
{ .backend = old1; }
{ .backend = old2; }
{ .backend = old3; }
{ .backend = old4; }
{ .backend = new; }
}
Версия сайта new.example.com получит 20% трафика.
Это своего рода взлом (вполне может быть лучшее решение), но я считаю, что это сработает.