<!-- review: finished -->

<a id="http-split-clients"></a>

# 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.

<a id="configuration-example-40"></a>

## Ejemplo de configuración

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

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

<a id="directives-43"></a>

## Directivas

<a id="index-0"></a>

<a id="id1"></a>

### split_clients

| [Sintaxis](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | `split_clients` string $variable { ... }   |
|--------------------------------------------------------------------------------------------|--------------------------------------------|
| Predeterminado                                                                             | —                                          |
| [Contexto](https://es.angie.software//angie/docs/configuration/configfile.md#configfile)   | http                                       |

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

La función de hash utiliza
[MurmurHash2](https://en.wikipedia.org/wiki/MurmurHash#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 a su valor correspondiente.

Ejemplo:

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

Aquí, tras la sustitución en la cadena `$*remote_addr*AAA`,
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).
