<!-- review: finished -->

<a id="http-v2"></a>

# HTTP/2

Fornece suporte para [HTTP/2](https://datatracker.ietf.org/doc/html/rfc9113).

Ao [compilar a partir do código-fonte](https://pt.angie.software//angie/docs/installation/sourcebuild.md#sourcebuild),
este módulo não é compilado por padrão;
ele deve ser habilitado com a
`‑‑with‑http_v2_module`
[opção de compilação](https://pt.angie.software//angie/docs/installation/sourcebuild.md#configure).

Em pacotes e imagens de [nossos repositórios](https://pt.angie.software//angie/docs/installation/index.md#install-packages),
o módulo está incluído na compilação.

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

## Exemplo de Configuração

```nginx
server {
    listen 443 ssl;

    http2 on;

    ssl_certificate server.crt;
    ssl_certificate_key server.key;
}
```

#### NOTE
Note que aceitar conexões HTTP/2 sobre TLS requer suporte à extensão TLS "Application-Layer Protocol Negotiation" (ALPN), que está disponível desde a versão 1.0.2 do [OpenSSL](http://www.openssl.org/).

Se a diretiva [ssl_prefer_server_ciphers](https://pt.angie.software//angie/docs/configuration/modules/http/http_ssl.md#ssl-prefer-server-ciphers) estiver definida com o valor "on", as [cifras](https://pt.angie.software//angie/docs/configuration/modules/http/http_ssl.md#ssl-ciphers) devem ser configuradas para estar em conformidade com a lista negra da [RFC 9113, Apêndice A](https://datatracker.ietf.org/doc/html/rfc9113#appendix-A) e ser suportadas pelos clientes.

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

## Diretivas

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

<a id="http2"></a>

### http2

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

Habilita o protocolo [HTTP/2](https://datatracker.ietf.org/doc/html/rfc9113).

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

<a id="http2-body-preread-size"></a>

### http2_body_preread_size

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

Define o tamanho do buffer por cada requisição no qual o corpo da requisição pode ser salvo antes de começar a ser processado.

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

<a id="http2-chunk-size"></a>

### http2_chunk_size

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `http2_chunk_size` size;   |
|-------------------------------------------------------------------------------------------|----------------------------|
| Padrão                                                                                    | `http2_chunk_size 8k;`     |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location     |

Define o tamanho máximo dos chunks nos quais o corpo da resposta é dividido. Um valor muito baixo resulta em maior overhead. Um valor muito alto prejudica a priorização devido ao [bloqueio head-of-line](http://en.wikipedia.org/wiki/Head-of-line_blocking).

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

<a id="http2-max-concurrent-pushes"></a>

### http2_max_concurrent_pushes

#### Deprecated
Descontinuado desde a versão 1.2.0.

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

Limita o número máximo de requisições [push](#http2-push) concorrentes em uma conexão.

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

<a id="http2-max-concurrent-streams"></a>

### http2_max_concurrent_streams

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

Define o número máximo de streams HTTP/2 concorrentes em uma conexão.

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

<a id="http2-push"></a>

### http2_push

#### Deprecated
Descontinuado desde a versão 1.2.0.

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

Envia preventivamente ([empurra](https://datatracker.ietf.org/doc/html/rfc9113#name-server-push)) uma requisição para o uri especificado junto com a resposta à requisição original. Apenas URIs relativos com caminho absoluto serão processados, por exemplo:

```nginx
http2_push /static/css/main.css;
```

O valor `uri` pode conter variáveis.

Várias diretivas http2_push podem ser especificadas no mesmo nível de configuração. O parâmetro `off` cancela o efeito das diretivas http2_push herdadas do nível de configuração anterior.

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

<a id="http2-push-preload"></a>

### http2_push_preload

#### Deprecated
Descontinuado desde a versão 1.2.0.

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

Habilita a conversão automática de [links de preload](https://www.w3.org/TR/preload/#server-push-http-2) especificados nos campos de cabeçalho de resposta "Link" em requisições [push](https://datatracker.ietf.org/doc/html/rfc9113#name-server-push).

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

<a id="http2-recv-buffer-size"></a>

### http2_recv_buffer_size

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `http2_recv_buffer_size` size;   |
|-------------------------------------------------------------------------------------------|----------------------------------|
| Padrão                                                                                    | `http2_recv_buffer_size 256k;`   |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http                             |

Define o tamanho do buffer de entrada por [worker](https://pt.angie.software//angie/docs/configuration/modules/core.md#worker-processes).

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

## Variáveis Integradas

O módulo http_v2 suporta as seguintes variáveis integradas:

<a id="v-http2"></a>

### `$http2`

identificador do protocolo negociado:

| `h2`   | para HTTP/2 sobre TLS                |
|--------|--------------------------------------|
| `h2c`  | para HTTP/2 sobre TCP em texto claro |
| `""`   | uma string vazia caso contrário      |
