Split Clients#
The module generates variables for A/B testing, canary releases, and other scenarios
that direct a certain percentage of clients to one server or configuration
while routing the rest elsewhere. Creates a $variable by hashing the string;
variables in the string are substituted,
the result is hashed,
then the hash value is used to select the string value of the $variable. The hash function uses
MurmurHash2
(32-bit),
and its entire value range
(0 to 4294967295)
is mapped to buckets in order of appearance;
the percentages determine the size of the buckets.
A wildcard ( Example: Here, after substitution in the values from 0 to 21474835 (0.5%) yield values from 21474836 to 107374180 (2%) yield values from 107374181 to 4294967295 (all others) yield Configuration Example#
http {
split_clients "${remote_addr}AAA" $variant {
0.5% .one;
2.0% .two;
* "";
}
server {
location / {
index index${variant}.html;
Directives#
split_clients#
*
) may occur last;
hashes that don't fall into other buckets are mapped to its assigned value.split_clients "${remote_addr}AAA" $variant {
0.5% .one;
2.0% .two;
* "";
}
$remote_addrAAA
string,
the hash values are distributed as follows:.one
;.two
;""
(empty string).