Модуль stream_split_clients
#
Создаёт переменные для A/B тестирования (также известного как “split-тестирование”).
Пример конфигурации#
stream {
...
split_clients "${remote_addr}AAA" $upstream {
0.5% feature_test1;
2.0% feature_test2;
* production;
}
server {
...
proxy_pass $upstream;
}
}
Директивы#
split_clients#
- Синтаксис:
split_clients
строка $переменная { … }- Умолчание:
—
- Контекст:
stream
Создаёт переменную для A/B тестирования, например:
split_clients "${remote_addr}AAA" $variant {
0.5% .one;
2.0% .two;
* "";
}
Значение исходной строки хэшируется с помощью MurmurHash2. В приведённом примере при значениях хэша от 0 до 21474835 (0.5%) переменная $variant получит значение «.one». При значениях хэша от 21474836 до 107374180 (2%) — «.two». И при значениях хэша от 107374181 до 4294967295 — «» (пустая строка).