Split Clients#
O módulo gera variáveis para testes A/B, lançamentos canário e outros cenários
que direcionam uma certa porcentagem de clientes para um servidor ou configuração
enquanto roteiam o restante para outro lugar. Cria uma $variable fazendo hash da string;
variáveis na string são substituídas,
o resultado é transformado em hash,
então o valor do hash é usado para selecionar o valor string da $variable. A função hash usa
MurmurHash2
(32-bit),
e toda sua faixa de valores
(0 a 4294967295)
é mapeada para buckets em ordem de aparição;
as porcentagens determinam o tamanho dos buckets.
Um curinga ( Exemplo: Aqui, após a substituição na string valores de 0 a 21474835 (0,5%) produzem valores de 21474836 a 107374180 (2%) produzem valores de 107374181 a 4294967295 (todos os outros) produzem Exemplo de Configuração#
http {
split_clients "${remote_addr}AAA" $variant {
0.5% .one;
2.0% .two;
* "";
}
server {
location / {
index index${variant}.html;
Diretivas#
split_clients#
*
) pode ocorrer por último;
hashes que não se encaixam em outros buckets são mapeados para seu valor atribuído.split_clients "${remote_addr}AAA" $variant {
0.5% .one;
2.0% .two;
* "";
}
$remote_addrAAA
,
os valores de hash são distribuídos da seguinte forma:.one
;.two
;""
(string vazia).