# Origins

import DocButton from '~/components/webkit/DocButton.vue';
import Apiv4Rollout from '~/includes/snippets/apiv4Rollout/pt/snippet.mdx'

<Apiv4Rollout />

:::caution[importante]
A funcionalidade Origins foi substituída por **Connectors**. Para mais informações sobre o novo produto, acesse a [referência do Connectors](/pt-br/documentacao/produtos/secure/connectors/).
:::

**Origins** permite que você personalize a origem do conteúdo do **Applications**, o cabeçalho do `Host` da aplicação, o caminho e as credenciais de autenticação HMAC para serviços protegidos.

Uma origem representa o servidor do qual a Azion recupera seu conteúdo, que pode ser um serviço de armazenamento de objetos ou um servidor em nuvem. Uma vez que uma origem é conectada ao seu aplicativo, os edge nodes armazenam em cache o conteúdo do servidor de origem e o entregam aos usuários mediante requisição.

## Implementação

| Escopo | Recursos |
| --- | --- |
| Primeiros passos de Applications | [Primeiros passos](/pt-br/documentacao/produtos/build/applications/primeiros-passos/) |
| Módulo Load Balancer | [Load Balancer](/pt-br/documentacao/produtos/secure/connectors/load-balancer/) |

---

## Origin Type

Existem três opções para você personalizar sua origem:

- **Single Origin**: crie um **address** para cada origem.
- **Load Balancer**: adicione vários **addresses** e determine o peso da carga e a função do servidor.
- **Object Storage**: selecione um bucket e o prefix do serviço **Object Storage** da Azion para entregar a aplicação.

### Load Balancer

Quando **Load Balancer** é selecionado como o tipo de origem, você pode configurar o **Balancing Method** para determinar como grandes quantidades de requisições são distribuídas entre os endereços, adicionar múltiplos **Addresses** à sua origem e alterar o **Server Role** e o **Weight** de cada endereço.

<DocButton href="/pt-br/documentacao/produtos/secure/connectors/load-balancer/" label="Saiba mais sobre Load Balancer" size="medium" />

### Object Storage

Quando **Object Storage** é selecionado como o tipo de origem, você deverá informar o **Bucket Name** e **Prefix**.

O nome do bucket é definido quando você [cria ou modifica um bucket de Object Storage](/pt-br/documentacao/produtos/guias/criar-e-modificar-um-bucket/).

O prefix é o caminho para a pasta dentro do bucket que armazena os objetos. Este campo pode ser deixado em branco se desejar que a origem de sua aplicação seja a raiz do bucket.

<DocButton href="/pt-br/documentacao/produtos/store/object-storage/" label="Saiba mais sobre Object Storage" size="medium" />

---

## Host Header

O cabeçalho `Host` é usado pela sua origem para identificar o *virtualhost* e localizar seu conteúdo ou aplicativo. Ao configurar uma origem no [Azion Console](https://console.azion.com), você tem a opção de personalizar o valor enviado pela Azion no cabeçalho `Host`.

Se o campo **Host Header** for deixado em branco, a Azion irá usar o mesmo endereço especificado no campo **Address** como padrão. Se sua origem estiver configurada para responder a um *virtualhost* usando o mesmo endereço configurado no DNS, você poderá deixar o campo **Host Header** vazio.

Se a sua origem responder a um *virtualhost* em um endereço diferente do definido no DNS, você deve preencher um valor personalizado para o cabeçalho do `Host` no formato FQDN, por exemplo, `www.seudominio.com`.

:::caution
Modificar o cabeçalho do `host` é essencial se sua origem responder a um *virtualhost* em um endereço diferente daquele configurado no DNS.
:::

Como alternativa, você pode usar a variável `${host}` no campo **Host Header** para instruir os edge nodes a passarem o cabeçalho do `Host` recebido de seus visitantes para a origem. Essa configuração é útil se você tiver vários *virtualhosts* sendo atendidos pela mesma origem.

---

## Origin Path

**Origin Path** permite que você especifique um path personalizado a partir do qual os edge nodes farão a requisição seu conteúdo para a origem. A Azion anexa o **Origin Path** à URI ao encaminhar a requisição para sua origem, mas não anexa a URI para requisições do usuário. Por exemplo, se você especifica que o caminho da sua origem é `/secure` e tiver configurado a sua aplicação para ser entregue através de `seudominio.com`, o caminho`/secure` não fará parte da requisição para o usuário final.

:::caution
A definição de um **Origin Path** é opcional. Se não for especificado, apenas a URI raiz será considerada.
:::

---

## Address

Para definir uma origem para o seu conteúdo, você precisa especificar o endereço do seu servidor como um nome de domínio no formato FQDN ou um endereço IPv4/IPv6. Se você definiu a **Origin Protocol Policy** como **Enforce HTTP** ou **Enforce HTTPS**, poderá personalizar a porta de origem usando a notação `host:port`.

---

## Origin Protocol Policy

A arquitetura de entrega da Azion oferece a flexibilidade de adaptar o tipo de conexão entre os edge nodes e sua origem com base em seus requisitos específicos:

- **Preservar protocolo HTTP/HTTPS**: esta opção mantém o mesmo protocolo de conexão (*HTTP ou HTTPS*) e portas usadas por seus usuários ao acessar seu conteúdo na Azion. Ele garante a continuidade da Azion para o seu servidor de origem.
- **Enforce HTTP**: com essa configuração, a conexão entre os edge nodes da Azion e sua origem será exclusivamente feita por HTTP, independentemente do protocolo de conexão e das portas usadas pelos usuários para acessar o conteúdo da Azion. Você pode personalizar uma porta específica para sua origem no campo **Address**, diferente da porta padrão (80 para HTTP), se desejar.
- **Enforce HTTPS**: esta opção exige que a conexão entre os edge nodes da Azion e sua origem seja exclusivamente por meio de HTTPS, independentemente do protocolo de conexão e das portas usadas por seus usuários para acessar o conteúdo da Azion. Você pode personalizar uma porta específica para sua origem no campo **Address**, diferente da porta padrão (443 para HTTPS), se desejar.

---

## HMAC Authentication

Para **Single Origin**, se a origem estiver localizada em um armazenamento de objetos com acesso privado, você deve fornecer credenciais de autenticação HMAC. Ao ativar a autenticação HMAC, seu conteúdo privado começará a ser entregue aos seus usuários por meio do **Applications**.

Você deve incluir nas credenciais de acesso HMAC fornecidas pelo seu provedor: **Region**, **Access Key** e **Secret Key**.

:::note
A **Secret Key** é protegida ao ser exibida apenas para seus usuários com permissão de *write* e mantendo sua segurança de acesso.
:::

---

## Timeouts

Exibe a configuração de tempo limite em segundos pré-definida pela Azion. Para alterar os valores de timeout, [contate o time de suporte](https://tickets.azion.com/en/support/loginpt-BR/support/login).


---