<!-- review: finished -->

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

# gRPC

Permite repassar requisições para um servidor gRPC.

#### NOTE
Este módulo requer o módulo [HTTP2](https://pt.angie.software//angie/docs/configuration/modules/http/http_v2.md#http-v2).

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

## Exemplo de Configuração

```nginx
server {
    listen 9000;

    http2 on;

    location / {
        grpc_pass 127.0.0.1:9000;
    }
}
```

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

## Diretivas

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

<a id="grpc-bind"></a>

### grpc_bind

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

Faz com que conexões de saída para um servidor gRPC se originem do endereço IP local especificado com uma porta opcional. O valor do parâmetro pode conter variáveis. O valor especial `off` cancela o efeito da diretiva grpc_bind herdada do nível de configuração anterior, permitindo que o sistema atribua automaticamente o endereço IP e a porta locais.

O parâmetro `transparent` permite que conexões de saída para um servidor gRPC se originem de um endereço IP não local, por exemplo, do endereço IP real de um cliente:

```nginx
grpc_bind $remote_addr transparent;
```

Para que este parâmetro funcione, geralmente é necessário executar processos worker do Angie com privilégios de [superusuário](https://pt.angie.software//angie/docs/configuration/modules/core.md#user). No Linux não é necessário, pois, se o parâmetro `transparent` for especificado, os processos worker herdam a capacidade CAP_NET_RAW do processo master.

#### NOTE
É necessário configurar a tabela de rotas do kernel para interceptar tráfego de rede do servidor gRPC.

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

<a id="grpc-buffer-size"></a>

### grpc_buffer_size

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

Define o tamanho do buffer usado para ler a primeira parte da resposta recebida do servidor gRPC. A resposta é repassada ao cliente de forma síncrona, assim que é recebida.

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

<a id="grpc-connect-timeout"></a>

### grpc_connect_timeout

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

Define um tempo limite para estabelecer conexão com um servidor gRPC. Deve-se notar que este tempo limite geralmente não pode exceder 75 segundos.

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

<a id="grpc-connection-drop"></a>

### grpc_connection_drop

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

Habilita a finalização de todas as conexões com o servidor proxy após ele ter sido removido do grupo ou marcado como permanentemente indisponível por um processo [reresolve](https://pt.angie.software//angie/docs/configuration/modules/http/http_upstream.md#reresolve) ou pelo comando `DELETE` da [API](https://pt.angie.software//angie/docs/configuration/modules/http/http_api.md#api-config-methods).

Uma conexão é finalizada quando o próximo evento de leitura ou escrita é processado, seja pelo cliente ou pelo servidor proxy.

Definir tempo habilita um [timeout](https://pt.angie.software//angie/docs/configuration/configfile.md#syntax) de finalização de conexão; com `on`, as conexões são encerradas imediatamente.

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

<a id="grpc-hide-header"></a>

### grpc_hide_header

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

Por padrão, o Angie não repassa os campos de cabeçalho `Date`, `Server` e `X-Accel-...` da resposta de um servidor gRPC para o cliente. A diretiva `grpc_hide_header` define campos adicionais que não serão repassados. Se, pelo contrário, for necessário permitir o repasse de campos, pode-se usar a diretiva [grpc_pass_header](#grpc-pass-header).

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

<a id="grpc-ignore-headers"></a>

### grpc_ignore_headers

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

Desabilita o processamento de certos campos de cabeçalho de resposta do servidor gRPC. Os seguintes campos podem ser ignorados: `X-Accel-Redirect` e `X-Accel-Charset`.

Se não forem desabilitados, o processamento destes campos de cabeçalho tem o seguinte efeito:

* `X-Accel-Redirect` executa um [redirecionamento interno](https://pt.angie.software//angie/docs/configuration/modules/http/index.md#internal) para o URI especificado;
* `X-Accel-Charset` define o [charset](https://pt.angie.software//angie/docs/configuration/modules/http/http_charset.md#id1) desejado de uma resposta.

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

<a id="grpc-intercept-errors"></a>

### grpc_intercept_errors

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

Determina se respostas do servidor gRPC com códigos maiores ou iguais a 300 devem ser repassadas ao cliente ou interceptadas e redirecionadas para o Angie para processamento com a diretiva [error_page](https://pt.angie.software//angie/docs/configuration/modules/http/index.md#error-page).

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

<a id="grpc-next-upstream"></a>

### grpc_next_upstream

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `grpc_next_upstream` `error` | `timeout` | `invalid_header` | `http_500` | `http_502` | `http_503` | `http_504` | `http_403` | `http_404` | `http_429` | `non_idempotent` | `off` ...;   |
|-------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Padrão                                                                                    | `grpc_next_upstream error timeout;`                                                                                                                                                      |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location                                                                                                                                                                   |

Especifica em quais casos uma requisição deve ser repassada para o próximo servidor no grupo [upstream](https://pt.angie.software//angie/docs/configuration/modules/http/http_upstream.md#http-upstream):

| `error`          | ocorreu um erro ao estabelecer conexão com o servidor, repassar a requisição ou ler o cabeçalho da resposta;                                                                                                                                                                                                                                   |
|------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `timeout`        | ocorreu timeout ao estabelecer conexão com o servidor, repassar a requisição ou ler o cabeçalho da resposta;                                                                                                                                                                                                                                   |
| `invalid_header` | o servidor retornou uma resposta vazia ou inválida;                                                                                                                                                                                                                                                                                            |
| `http_500`       | o servidor retornou resposta com código 500;                                                                                                                                                                                                                                                                                                   |
| `http_502`       | o servidor retornou resposta com código 502;                                                                                                                                                                                                                                                                                                   |
| `http_503`       | o servidor retornou resposta com código 503;                                                                                                                                                                                                                                                                                                   |
| `http_504`       | o servidor retornou resposta com código 504;                                                                                                                                                                                                                                                                                                   |
| `http_403`       | o servidor retornou resposta com código 403;                                                                                                                                                                                                                                                                                                   |
| `http_404`       | o servidor retornou resposta com código 404;                                                                                                                                                                                                                                                                                                   |
| `http_429`       | o servidor retornou resposta com código 429;                                                                                                                                                                                                                                                                                                   |
| `non_idempotent` | normalmente, requisições com método [não idempotente](https://datatracker.ietf.org/doc/html/rfc7231#section-4.2.2)<br/>(`POST`, `LOCK`, `PATCH`) não são repassadas ao próximo<br/>servidor se uma requisição já tiver sido enviada a um servidor upstream; habilitar<br/>esta opção permite explicitamente tentar novamente tais requisições; |
| `off`            | desabilita o repasse da requisição ao próximo servidor.                                                                                                                                                                                                                                                                                        |

#### NOTE
Deve-se ter em mente que repassar uma requisição ao próximo servidor só é possível se nada ainda tiver sido enviado ao cliente. Ou seja, se um erro ou timeout ocorrer no meio da transferência da resposta, não é possível corrigir.

A diretiva também define o que é considerado uma [tentativa malsucedida](https://pt.angie.software//angie/docs/configuration/modules/http/http_upstream.md#max-fails) de comunicação com um servidor.

| `error`, `timeout`, `invalid_header`                       | sempre considerados tentativas malsucedidas, mesmo que não especificados na diretiva   |
|------------------------------------------------------------|----------------------------------------------------------------------------------------|
| `http_500`, `http_502`, `http_503`, `http_504`, `http_429` | considerados tentativas malsucedidas apenas se especificados na diretiva               |
| `http_403`, `http_404`                                     | nunca considerados tentativas malsucedidas                                             |

O repasse de uma requisição ao próximo servidor pode ser limitado pelo [número de tentativas](#grpc-next-upstream-tries) e pelo [tempo](#grpc-next-upstream-timeout).

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

<a id="grpc-next-upstream-timeout"></a>

### grpc_next_upstream_timeout

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

Limita o tempo durante o qual uma requisição pode ser repassada para o [próximo servidor](#grpc-next-upstream).

| `0`   | desativa esta limitação   |
|-------|---------------------------|

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

<a id="grpc-next-upstream-tries"></a>

### grpc_next_upstream_tries

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `grpc_next_upstream_tries` número;   |
|-------------------------------------------------------------------------------------------|--------------------------------------|
| Padrão                                                                                    | `grpc_next_upstream_tries 0;`        |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location               |

Limita o número de tentativas possíveis para repassar uma requisição ao [próximo](#grpc-next-upstream) servidor.

| `0`   | desativa esta limitação   |
|-------|---------------------------|

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

<a id="grpc-pass"></a>

### grpc_pass

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `grpc_pass` endereço;    |
|-------------------------------------------------------------------------------------------|--------------------------|
| Padrão                                                                                    | —                        |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | location, if in location |

Define o endereço do servidor gRPC. O endereço pode ser especificado como um nome de domínio ou endereço IP, e uma porta:

```nginx
grpc_pass localhost:9000;
```

ou como um caminho de socket de domínio UNIX:

```nginx
grpc_pass unix:/tmp/grpc.socket;
```

Alternativamente, pode-se usar o esquema `grpc://`:

```nginx
grpc_pass grpc://127.0.0.1:9000;
```

Para usar gRPC sobre SSL, deve-se usar o esquema `grpcs://`:

```nginx
grpc_pass grpcs://127.0.0.1:443;
```

Se um nome de domínio resolver para vários endereços, todos serão usados em round-robin. Além disso, um endereço pode ser especificado como um [grupo de servidores](https://pt.angie.software//angie/docs/configuration/modules/http/http_upstream.md#http-upstream).

O valor do parâmetro pode conter variáveis. Neste caso, se um endereço for especificado como nome de domínio, o nome será procurado entre os grupos de servidores descritos e, se não for encontrado, será determinado usando um [resolver](https://pt.angie.software//angie/docs/configuration/modules/http/index.md#resolver).

#### NOTE
Se `grpc_pass` for especificado em um `location` com uma barra final no prefixo
(por exemplo, `location /name/`),
e a diretiva [auto_redirect](https://pt.angie.software//angie/docs/configuration/modules/http/index.md#auto-redirect) estiver definida como `default`,
requisições sem barra final serão redirecionadas (`/name -> /name/`).

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

<a id="grpc-pass-header"></a>

### grpc_pass_header

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

Permite repassar campos de cabeçalho [normalmente desabilitados](#grpc-hide-header) de um servidor gRPC para um cliente.

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

<a id="grpc-read-timeout"></a>

### grpc_read_timeout

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

Define um tempo limite para leitura de resposta do servidor gRPC. O tempo limite é definido apenas entre duas operações de leitura sucessivas, não para a transmissão da resposta inteira. Se o servidor gRPC não transmitir nada dentro desse tempo, a conexão é fechada.

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

<a id="grpc-send-timeout"></a>

### grpc_send_timeout

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

Define um tempo limite para transmitir uma requisição ao servidor gRPC. O tempo limite é definido apenas entre duas operações de escrita sucessivas, não para a transmissão da requisição inteira. Se o servidor gRPC não receber nada dentro desse tempo, a conexão é fechada.

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

<a id="grpc-set-header"></a>

### grpc_set_header

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `grpc_set_header` campo valor;                    |
|-------------------------------------------------------------------------------------------|---------------------------------------------------|
| Padrão                                                                                    | `grpc_set_header Content-Length $content_length;` |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location                            |

Permite redefinir ou adicionar campos ao cabeçalho da requisição [repassado](https://pt.angie.software//angie/docs/configuration/modules/http/http_proxy.md#proxy-pass-request-headers) para o servidor gRPC. O valor pode conter texto, variáveis e suas combinações. Essas diretivas são herdadas do nível de configuração anterior se e somente se não houver diretivas grpc_set_header definidas no nível atual.

Se o valor de um campo de cabeçalho for uma string vazia, então esse campo não será repassado ao servidor gRPC:

```nginx
grpc_set_header Accept-Encoding "";
```

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

<a id="grpc-socket-keepalive"></a>

### grpc_socket_keepalive

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

Configura o comportamento de "TCP keepalive" para conexões de saída a um servidor gRPC.

| `off`   | Por padrão, as configurações do sistema operacional estão em efeito para o socket.   |
|---------|--------------------------------------------------------------------------------------|
| `on`    | A opção de socket SO_KEEPALIVE é ativada para o socket.                              |

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

<a id="grpc-ssl-certificate"></a>

### grpc_ssl_certificate

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

Especifica um arquivo com o certificado no formato PEM usado para autenticação em um servidor gRPC SSL. Variáveis podem ser usadas no nome do arquivo.

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

<a id="grpc-ssl-certificate-cache"></a>

### grpc_ssl_certificate_cache

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `grpc_ssl_certificate_cache` `off`;<br/><br/>`grpc_ssl_certificate_cache` `max=`N [`inactive=`tempo] [`valid=`tempo];   |
|-------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------|
| Padrão                                                                                    | `grpc_ssl_certificate_cache off;`                                                                                       |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location                                                                                                  |

Define um cache que armazena [certificados SSL](#grpc-ssl-certificate) e [chaves secretas](#grpc-ssl-certificate-key) especificados usando variáveis.

A diretiva suporta os seguintes parâmetros:

- `max` — define o número máximo de elementos no cache. Quando o cache
  está cheio, os elementos menos usados recentemente (LRU) são removidos.
- `inactive` — define o tempo após o qual um elemento é removido se não
  tiver sido acessado. O padrão é 10 segundos.
- `valid` — define o tempo durante o qual um elemento em cache é
  considerado válido e pode ser reutilizado. O padrão é 60 segundos. Após esse
  período, os certificados são recarregados ou revalidados.
- `off` — desativa o cache.

Exemplo:

```nginx
grpc_ssl_certificate       $grpc_ssl_server_name.crt;
grpc_ssl_certificate_key   $grpc_ssl_server_name.key;
grpc_ssl_certificate_cache max=1000 inactive=20s valid=1m;
```

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

<a id="grpc-ssl-certificate-key"></a>

### grpc_ssl_certificate_key

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

Especifica um arquivo com a chave secreta no formato PEM usada para autenticação em um servidor gRPC SSL.

O valor `engine:`nome`:id` pode ser especificado em vez do arquivo, carregando uma chave secreta com o id especificado do motor OpenSSL nome.

O valor `store:esquema:id` pode ser especificado em vez do arquivo, sendo usado para carregar uma chave secreta com o id especificado e o URI esquema registrado no provedor OpenSSL, como [pkcs11](https://datatracker.ietf.org/doc/html/rfc7512).

Variáveis podem ser usadas no nome do arquivo.

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

<a id="grpc-ssl-ciphers"></a>

### grpc_ssl_ciphers

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

Especifica as cifras habilitadas para requisições a um servidor gRPC SSL. As cifras são especificadas no formato compreendido pela biblioteca OpenSSL.

A lista de cifras depende da versão do OpenSSL instalada.
A lista completa pode ser visualizada usando o comando `openssl ciphers`.

#### WARNING
A diretiva `grpc_ssl_ciphers` *não* configura cifras para TLS
1.3 ao usar OpenSSL. Para ajustar cifras TLS 1.3 com OpenSSL, use a
diretiva [grpc_ssl_conf_command](#grpc-ssl-conf-command), que foi adicionada para suportar
configuração SSL avançada.

- No LibreSSL, cifras TLS 1.3 *podem* ser configuradas usando
  `grpc_ssl_ciphers`.
- No BoringSSL, cifras TLS 1.3 não podem ser configuradas de forma alguma.

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

<a id="grpc-ssl-conf-command"></a>

### grpc_ssl_conf_command

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

Define [comandos de configuração](https://docs.openssl.org/master/man3/SSL_CONF_cmd/) arbitrários do OpenSSL ao estabelecer uma conexão com o servidor gRPC SSL.

#### NOTE
A diretiva é suportada ao usar OpenSSL 1.0.2 ou superior.
Para configurar cifras TLS 1.3 com OpenSSL, use o comando `ciphersuites`.

Várias diretivas grpc_ssl_conf_command podem ser especificadas no mesmo nível. Essas diretivas são herdadas do nível de configuração anterior se e somente se não houver diretivas grpc_ssl_conf_command definidas no nível atual.

#### WARNING
Note que configurar o OpenSSL diretamente pode resultar em comportamento inesperado.

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

<a id="grpc-ssl-crl"></a>

### grpc_ssl_crl

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

Especifica um arquivo com certificados revogados (CRL) no formato PEM usado para [verificar](#grpc-ssl-verify) o certificado do servidor gRPC SSL.

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

<a id="grpc-ssl-name"></a>

### grpc_ssl_name

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `grpc_ssl_name` name;                      |
|-------------------------------------------------------------------------------------------|--------------------------------------------|
| Padrão                                                                                    | `grpc_ssl_name `host name` de grpc_pass;\` |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location                     |

Permite sobrescrever o nome do servidor usado para [verificar](#grpc-ssl-verify) o certificado do servidor gRPC SSL e para ser [passado via SNI](#grpc-ssl-server-name) ao estabelecer uma conexão com o servidor gRPC SSL.

Por padrão, o host name do [grpc_pass](#grpc-pass) é usado.

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

<a id="grpc-ssl-password-file"></a>

### grpc_ssl_password_file

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

Especifica um arquivo com senhas para [chaves secretas](#grpc-ssl-certificate-key), onde cada senha é especificada em uma linha separada. As senhas são testadas em sequência ao carregar a chave.

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

<a id="grpc-ssl-protocols"></a>

### grpc_ssl_protocols

| [Sintaxe](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)   | `grpc_ssl_protocols` [`SSLv2`] [`SSLv3`] [`TLSv1`] [`TLSv1.1`] [`TLSv1.2`] [`TLSv1.3`];   |
|-------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|
| Padrão                                                                                    | `grpc_ssl_protocols TLSv1.2 TLSv1.3;`                                                     |
| [Contexto](https://pt.angie.software//angie/docs/configuration/configfile.md#configfile)  | http, server, location                                                                    |

#### Versionchanged
Alterado na versão 1.2.0: Parâmetro `TLSv1.3` adicionado ao conjunto padrão.

Habilita os protocolos especificados para solicitações a um servidor gRPC SSL.

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

<a id="grpc-ssl-server-name"></a>

### grpc_ssl_server_name

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

Habilita ou desabilita o envio do nome do servidor
definido pela diretiva [grpc_ssl_name](#grpc-ssl-name)
via a extensão TLS
[Server Name Indication](http://en.wikipedia.org/wiki/Server_Name_Indication)
(SNI,
[RFC 6066](https://datatracker.ietf.org/doc/html/rfc6066.html))
ao estabelecer uma conexão com o servidor gRPC SSL.

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

<a id="grpc-ssl-session-reuse"></a>

### grpc_ssl_session_reuse

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

Determina se sessões SSL podem ser reutilizadas ao trabalhar com o servidor gRPC. Se os erros "SSL3_GET_FINISHED:digest check failed" aparecerem nos logs, tente desabilitar a reutilização de sessão.

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

<a id="grpc-ssl-trusted-certificate"></a>

### grpc_ssl_trusted_certificate

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

Especifica um arquivo com certificados de CA confiáveis no formato PEM usado para [verificar](#grpc-ssl-verify) o certificado do servidor gRPC SSL.

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

<a id="grpc-ssl-verify"></a>

### grpc_ssl_verify

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

Habilita ou desabilita a verificação do certificado do servidor gRPC SSL.

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

<a id="grpc-ssl-verify-depth"></a>

### grpc_ssl_verify_depth

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

Define a profundidade de verificação na cadeia de certificados do servidor gRPC SSL.
