<!-- review: finished -->

<a id="stream-limit-conn"></a>

# Limit Conn

O módulo é usado para limitar o número de conexões por chave definida, em particular, o número de conexões de um único endereço IP.

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

## Exemplo de Configuração

```nginx
stream {
    limit_conn_zone $binary_remote_addr zone=addr:10m;

    ...

    server {

        ...

        limit_conn           addr 1;
        limit_conn_log_level error;
    }
}
```

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

## Diretivas

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

<a id="s-limit-conn"></a>

### limit_conn

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `limit_conn` zone number;   |
|-------------------------------------------------------------------------------------------|-----------------------------|
| Padrão                                                                                    | —                           |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server              |

Define a zona de memória compartilhada e o número máximo permitido de conexões para um determinado valor de chave. Quando este limite é excedido, o servidor fechará a conexão. Por exemplo, as diretivas

```nginx
limit_conn_zone $binary_remote_addr zone=addr:10m;

server {
    ...
    limit_conn addr 1;
}
```

permitem apenas uma conexão por endereço IP por vez.

Quando várias diretivas `limit_conn` são especificadas, qualquer limite configurado será aplicado.

Essas diretivas são herdadas do nível de configuração anterior se e somente se não houver diretivas `limit_conn` definidas no nível atual.

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

<a id="s-limit-conn-dry-run"></a>

### limit_conn_dry_run

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `limit_conn_dry_run` `on` | `off`;   |
|-------------------------------------------------------------------------------------------|--------------------------------------|
| Padrão                                                                                    | `limit_conn_dry_run off;`            |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                       |

Habilita o modo de execução simulada. Neste modo, o número de conexões não é limitado, porém, na [zona de memória compartilhada](#s-limit-conn-zone), o número de conexões excessivas é contabilizado normalmente.

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

<a id="s-limit-conn-log-level"></a>

### limit_conn_log_level

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `limit_conn_log_level` `info` | `notice` | `warn` | `error`;   |
|-------------------------------------------------------------------------------------------|----------------------------------------------------------------|
| Padrão                                                                                    | `limit_conn_log_level error;`                                  |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream, server                                                 |

Define o nível de log desejado para casos quando o servidor limita o número de conexões.

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

<a id="s-limit-conn-zone"></a>

### limit_conn_zone

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `limit_conn_zone` key zone = name:size;   |
|-------------------------------------------------------------------------------------------|-------------------------------------------|
| Padrão                                                                                    | —                                         |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | stream                                    |

Define parâmetros para uma zona de memória compartilhada que manterá estados para várias chaves. Em particular, o estado inclui o número atual de conexões. A chave pode conter texto, variáveis e suas combinações. Conexões com valor de chave vazio não são contabilizadas.

Exemplo de uso:

```nginx
limit_conn_zone $binary_remote_addr zone=addr:10m;
```

Aqui, um endereço IP do cliente é definido pela variável `$binary_remote_addr`.

O tamanho de `$binary_remote_addr` é 4 bytes para endereços IPv4 ou 16 bytes para endereços IPv6. O estado armazenado sempre ocupa 32 ou 64 bytes em plataformas de 32 bits e 64 bytes em plataformas de 64 bits.

Uma zona de um megabyte pode manter cerca de 32 mil estados de 32 bytes ou cerca de 16 mil estados de 64 bytes. Se o armazenamento da zona for esgotado, o servidor fechará a conexão.

<a id="built-in-variables-19"></a>

## Variáveis Integradas

<a id="v-s-limit-conn-status"></a>

### `$limit_conn_status`

mantém o resultado da limitação do número de conexões: `PASSED`,
`REJECTED` ou `REJECTED_DRY_RUN`
