Nginx split_clients 模块
Posted On 2019年5月23日 By liang
split_clients模块默认已经编译进Nginx , 通过–without-http_split_clients_module 禁用。
功能:
1、基于已有变量创建新变量,可为实现AB测试提供更多的可能性。
2、对已有变量的值执行MurmurHash2算法得到32位整型哈希数字,记为hash。
3、32位无符号整型的最大数字2^32-1,记为max。
4、哈希数字与最大数字相除hash/max,可以得到百分比percent。
5、配置指令中只是了各个百分比构成的范围,如0-1%,1%-5%等,及范围对应的值。
6、当percent落在哪个范围里,新变量的值就对应着其后的参数。
已有变量
1、字符串
2、一个或多个变量
3、变量与字符串的组合
case规则
1、xx.xx% ,支持小数点后2位,所有项的百分比相加不能超过100% 。
2、* ,由它匹配剩余的百分比(100%减去以上所有相加的百分比)。
split_clients指令
Syntax: split_clients string $variable { ... }
Default: ---
Context: http
#${http_testcli} 从HTTP请求的header中去testcli的
split_clients "${http_testcli}" $variant {
0.51% one;
20.0% two;
50.5% four;
* "";
}