---
name: azion-defina-o-host-header-e-o-path-prefix-de-uma-origem
description: >-
  Escolha o header Host que um connector envia e o caminho que ele adiciona à frente, para que a origem sirva o site e o diretório certos.
---

# Defina o Host header e o path prefix de uma origem

Você pode definir o header `Host` que um [connector](/pt-br/documentacao/plataforma/connectors/) envia à sua origem, e um caminho que ele adiciona à frente de toda requisição, pelo Azion Console, pela Azion CLI ou pela API. As duas configurações se aplicam a um connector do tipo `http`. Os exemplos usam `httpbin.org` como origem, porque ele responde com a requisição que recebeu, então cada configuração aparece na resposta. Substitua-o pelo hostname da sua origem.

---

Selecione a interface que você usa. Os pré-requisitos e todas as tarefas desta página seguem essa escolha.

## Pré-requisitos

- Um connector do tipo `http` e um workload cuja aplicação aponta uma regra para o connector com o behavior `Set Connector`. Para criar os dois, consulte [Primeiros passos com Connectors](/pt-br/documentacao/plataforma/connectors/primeiros-passos/).
- O domínio do workload, ou um domínio próprio, no qual o workload responde.

**Console**

- Acesso ao [Azion Console](https://console.azion.com/).

**CLI**

- [Azion CLI](/pt-br/documentacao/devtools/cli/), instalada e autorizada.
- O ID do seu connector.

**API**

- Um [personal token](/pt-br/documentacao/fundamentos/personal-tokens/) e `curl`.
- O ID do seu connector.

---

## Envie o hostname da própria origem

Por padrão, `host` é `${host}`, que envia o host que o cliente requisitou. Mantenha o padrão para uma origem que serve vários virtual hosts e lê cada requisição pelo seu nome público. Defina um valor literal quando a origem responde apenas pelo próprio nome. O connector então envia esse nome em toda requisição.

**Console**

Para definir o hostname no Azion Console:

1. **Abra o connector**

   Acesse [Azion Console](https://console.azion.com/) > **Connectors** e selecione o seu connector.

2. **Informe o hostname**

   Em **Host**, informe `httpbin.org`.

3. **Selecione Save**

Azion Console mostra `Connector has been updated`. Azion Console recusa um valor que não é um hostname, um endereço IP ou uma variável, com `Host must be a valid hostname, IP address, or variable.`

**CLI**

Azion CLI atualiza um connector a partir de um arquivo que carrega o connector inteiro: o `name`, o `type`, `attributes.addresses` e as opções de conexão que você define. Um arquivo apenas com `connection_options` falha com `Failed to decode the given 'json' file`. Copie os valores atuais do seu connector para o arquivo e então altere `host`.

Para definir o hostname pela Azion CLI, salve o connector como `connector.json`:

```json
{
  "name": "my-connector",
  "type": "http",
  "attributes": {
    "addresses": [{"address": "httpbin.org"}],
    "connection_options": {"transport_policy": "force_https", "host": "httpbin.org"}
  }
}
```

Depois, atualize o connector a partir do arquivo. Substitua `<connector-id>` pelo ID do seu connector:

```bash
azion update connector --connector-id <connector-id> --type http --file connector.json
```

```text
Updated Connector with ID <connector-id>
```

O connector agora envia `Host: httpbin.org` à origem.

**API**

Para definir o hostname pela API, envie uma requisição `PATCH` apenas com a chave que você altera. Um `PATCH` a mescla no connector armazenado:

```bash
curl --request PATCH \
  --url https://api.azion.com/v4/workspace/connectors/<connector-id> \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{"attributes":{"connection_options":{"host":"httpbin.org"}}}'
```

A API responde `202` com `"state": "pending"` e o connector completo. `connection_options.host` mostra `httpbin.org`, e as outras opções de conexão mantêm seus valores. Um `host` vazio é recusado com `400` e `10018` `This field may not be blank.`

Para enviar de novo o host do cliente, defina o valor como `${host}` outra vez.

---

## Adicione um prefixo de caminho

O caminho vai na frente do caminho que o cliente requisitou, para que a origem sirva conteúdo de um dos seus diretórios. Com `/anything`, uma requisição para `/get` chega à origem como `/anything/get`. Com `/secure`, uma requisição para `https://<your-domain>/index.html` chega à origem como `/secure/index.html`. O prefixo nunca aparece na URL do cliente. O valor começa com `/`, e por padrão não há prefixo.

Para um bucket de Object Storage, um connector do tipo `storage` carrega o próprio `prefix` em vez disso. Para mais informações, consulte [Configurações de connector](/pt-br/documentacao/plataforma/connectors/configuracoes/#storage).

**Console**

Para definir o caminho no Azion Console:

1. **Abra o connector**

   Acesse [Azion Console](https://console.azion.com/) > **Connectors** e selecione o seu connector.

2. **Informe o caminho**

   Em **Path**, informe `/anything`.

3. **Selecione Save**

Azion Console mostra `Connector has been updated`. Um caminho sem a barra inicial é recusado com `Path must start with a forward slash (/)`.

**CLI**

Para definir o caminho pela Azion CLI, adicione `path_prefix` ao connector inteiro em `connector.json`:

```json
{
  "name": "my-connector",
  "type": "http",
  "attributes": {
    "addresses": [{"address": "httpbin.org"}],
    "connection_options": {"transport_policy": "force_https", "host": "httpbin.org", "path_prefix": "/anything"}
  }
}
```

Depois, atualize o connector a partir do arquivo:

```bash
azion update connector --connector-id <connector-id> --type http --file connector.json
```

```text
Updated Connector with ID <connector-id>
```

Para ler de volta as opções de conexão:

```bash
azion describe connector --connector-id <connector-id> --format json
```

A saída carrega o novo caminho e o hostname do arquivo:

```text
  "connection_options": {
   "dns_resolution": "both",
   "following_redirect": false,
   "host": "httpbin.org",
   "http_version_policy": "http1_1",
   "path_prefix": "/anything",
   "real_ip_header": "X-Real-IP",
   "real_port_header": "X-Real-PORT",
   "transport_policy": "force_https"
  },
```

`path_prefix` carrega `/anything`, e `host` carrega o nome do arquivo.

**API**

Para definir o caminho pela API, envie uma requisição `PATCH` apenas com `path_prefix`:

```bash
curl --request PATCH \
  --url https://api.azion.com/v4/workspace/connectors/<connector-id> \
  --header 'Accept: application/json' \
  --header 'Authorization: Token [TOKEN VALUE]' \
  --header 'Content-Type: application/json' \
  --data '{"attributes":{"connection_options":{"path_prefix":"/anything"}}}'
```

A API responde `202` com `"state": "pending"` e o connector completo, em que `connection_options.path_prefix` mostra `/anything`. Um valor sem a barra inicial, como `anything`, é recusado com `400` e `28009` `Invalid path format. Must be a valid path.`

---

## Verifique o que a origem recebe

Uma alteração em um connector não precisa de um novo deployment. Ela chega ao tráfego em vários minutos, e cada data center a aplica no seu próprio momento. Para mais informações, consulte [Como Connectors funciona](/pt-br/documentacao/plataforma/connectors/como-funciona/#propagacao).

Para ver a requisição que a origem recebeu, envie uma requisição pelo seu workload. Substitua `<workload-domain>` pelo domínio do workload ou pelo seu próprio domínio:

```bash
curl -s -D - https://<workload-domain>/get
```

`httpbin.org` responde com a requisição que recebeu, em JSON. Dois campos mostram as configurações do connector: `headers.Host` é o header `Host`, e `url` carrega o caminho que a origem recebeu. Com `host` em `${host}` e o path prefix `/anything`, a resposta fica assim:

```text
HTTP/2 200
…
server: gunicorn/19.9.0
…
  "headers": {
    …
    "Host": "<workload-domain>",
    …
  },
  …
  "url": "https://<workload-domain>/anything/get"
}
```

`url` carrega `/anything/get`, então o connector adiciona o path prefix à frente do caminho. `headers.Host` carrega o domínio do workload, o host que o cliente requisitou. Com `host` em `httpbin.org`, `headers.Host` mostra `httpbin.org` em vez disso. Envie a requisição várias vezes: uma resposta com os valores anteriores vem de um data center que ainda não aplicou a alteração.

---

## Próximos passos

- [Configurações de connector](/pt-br/documentacao/plataforma/connectors/configuracoes.md#opcoes-de-conexao): Cada opção de conexão, com o campo da API, o padrão e os limites.
- [Como Connectors funciona](/pt-br/documentacao/plataforma/connectors/como-funciona.md#header-host): Como o header Host, o prefixo de caminho e o protocolo moldam a requisição que a origem recebe.
- [Assine requisições de origem com HMAC](/pt-br/documentacao/guias/desenvolvimento-de-aplicacoes/primeiros-passos/assine-requisicoes-de-origem-com-hmac.md): Sirva um bucket privado de uma origem compatível com S3, com o nome do bucket como caminho.
- [Solucionar problemas de Connectors](/pt-br/documentacao/plataforma/connectors/solucao-de-problemas.md): Corrija um connector cuja origem recusa requisições ou responde com um erro.
