Split Clients#

El módulo genera variables para pruebas A/B, lanzamientos canary y otros escenarios que dirigen un cierto porcentaje de clientes a un servidor o configuración, mientras enrutan el resto a otro lugar.

Ejemplo de Configuración#

http {
    split_clients "${remote_addr}AAA" $variant {
                   0.5%               .one;
                   2.0%               .two;
                   *                  "";
    }

    server {
        location / {
            index index${variant}.html;

Directivas#

split_clients#

Sintaxis

split_clients string $variable { ... }

Predeterminado

Contexto

http

Crea una $variable mediante el hash de la string; las variables en la string se sustituyen, luego el resultado se somete a hash y se utiliza el valor hash para seleccionar el valor de la cadena de la $variable.

La función de hash utiliza MurmurHash2 (32 bits), y todo su rango de valores (0 a 4294967295) se asigna a cubetas en orden de aparición; los porcentajes determinan el tamaño de las cubetas. Un comodín (*) puede aparecer al final; los valores hash que no caen en otras cubetas se asignan al valor correspondiente.

Ejemplo:

split_clients "${remote_addr}AAA" $variant {
               0.5%               .one;
               2.0%               .two;
               *                  "";
}

Aquí, tras la sustitución en la cadena $remote_addrAAA, los valores hash se distribuyen de la siguiente manera:

  • valores de 0 a 21474835 (0.5%) producen .one;

  • valores de 21474836 a 107374180 (2%) producen .two;

  • valores de 107374181 a 4294967295 (todos los demás) producen "" (cadena vacía).