Todos os produtos
Search
Central de documentação

Edge Security Acceleration:Configure domain names

Última atualização: Jun 29, 2026

Para acessar o Functions and Pages por meio de um domínio personalizado, configure um nome de domínio como ponto de entrada. O Edge Security Acceleration (ESA) oferece dois métodos para direcionar solicitações HTTP/HTTPS ao Functions and Pages: Custom Domains e Routes.

Pré-requisitos

Tanto o recurso Custom Domains quanto o Routes exigem um site ativo em sua conta.

Um site ativo possui um plano adquirido e está conectado por meio de um registro NS ou CNAME.

Escolher um método de configuração

image

Recurso

Custom Domains

Routes

Finalidade principal

Encaminha todas as solicitações de um domínio especificado, como api.example.com, para uma única instância do Functions and Pages.

Roteia apenas solicitações que correspondem a um caminho predefinido, como example.com/api/*, para o Functions and Pages. Outras solicitações não são afetadas.

Escopo

Todo o tráfego do domínio.

Apenas o tráfego correspondente à regra.

Configuração

Processo simples, em uma única etapa.

Flexível. Exige configuração de regras de correspondência.

Casos de uso

  • Funções dedicadas de gateway de API.

  • Aplicações completas com renderização no lado do servidor (SSR).

  • Autenticar ou registrar logs de caminhos específicos da API.

  • Implementar testes A/B para caminhos de página específicos.

  • Interceptar solicitações específicas e retornar conteúdo personalizado.

Vincular um domínio personalizado

Use o recurso Custom Domains para direcionar todo o tráfego de um domínio para uma única instância do Functions and Pages.

Vincule o Functions and Pages ao domínio do seu site. Após a vinculação, acesse o Functions and Pages pelo domínio personalizado. O domínio vinculado ao Functions and Pages deve pertencer a um site disponível. O ESA adiciona automaticamente um registro DNS para o domínio vinculado.

image
  1. Faça login no console do ESA e, no painel de navegação à esquerda, escolha Edge Computing and AI > Functions and Pages. Clique na instância desejada do Functions and Pages.

  2. Clique na aba Domain Names. Na seção Custom Domains, clique em Add Domain Name.image

  3. Insira o nome de domínio a ser vinculado à sua instância do Functions and Pages, como pages.example.com. O ESA cria automaticamente um registro DNS para o domínio no site correspondente.

    Nota

    Um novo domínio herda a configuração do site. Se o site não possuir um certificado SSL/TLS, o domínio não poderá ser acessado via HTTPS. Configure o SSL/TLS para habilitar o acesso HTTPS.

    image

  4. Siga as próximas etapas conforme o método de conexão do seu site.

    Registro NS

    Se o seu site utiliza um registro NS, aguarde cerca de um minuto para que o registro DNS entre em vigor. Em seguida, abra um navegador e acesse o domínio personalizado, como pages.example.com, para visualizar o resultado.image

    Registro CNAME

    Caso seu site utilize um registro CNAME, adicione um registro CNAME no seu provedor de DNS para ativar o domínio.

    1. Na lista de domínios personalizados, localize seu novo domínio e clique em View DNS Records.

      image

    2. Copie o valor CNAME gerado pelo ESA.

      image

    3. Acesse o site do seu provedor de DNS e adicione um registro CNAME com as seguintes informações:

      • Host Record: Insira o prefixo do domínio personalizado. Para este exemplo, insira pages.

      • Record Type: Selecione CNAME.

      • Record Value: Cole o valor CNAME copiado na etapa anterior.

      image

    4. Retorne ao console do ESA e aguarde até que o CNAME Status exiba Configured.imageDepois disso, visualize a página acessando o domínio personalizado recém-vinculado, como pages.example.com, em um navegador.image

Configurar rotas

Direcione solicitações correspondentes a caminhos de URL específicos para uma instância do Functions and Pages e obtenha controle granular do tráfego. O Functions and Pages processa as solicitações correspondentes; as não correspondentes seguem o fluxo padrão de aceleração e cache do ESA. Por exemplo, uma rota para example.com/a* no site example.com envia solicitações para /a, /a1 e /a2 ao Functions and Pages, enquanto solicitações para /b, /c e /d vão para a origem ou cache.

image
  1. Faça login no console do ESA e, no painel de navegação à esquerda, escolha Edge Computing and AI > Functions and Pages. Clique na instância desejada do Functions and Pages.

  2. Clique na aba Domain Names. Na seção Routes, clique em Add Route.image

  3. Insira um Route Name. Na lista Select Website, selecione o site alvo, como example.com.

  4. Selecione um Route Mode.

    1. Simple Mode: Corresponde a solicitações baseadas apenas na URL (nome do host e caminho). Por exemplo, configure uma regra para rotear todas as solicitações com o prefixo de URL pages.example.com para sua instância do Functions and Pages.image

    2. Custom Mode: Combine múltiplas condições, como cabeçalhos de solicitação, cookies e métodos de requisição, para correspondências complexas. Defina a relação lógica entre as condições (All/Any). Por exemplo, encaminhe uma solicitação ao Functions and Pages somente quando o Hostname for igual a www.example.com e o cabeçalho de solicitação User-Agent contiver Mobile:image

  5. Em um navegador, acesse uma URL correspondente à rota para ver o resultado.

    image

Importante
  • Ao usar o Simple Mode e inserir um domínio com prefixo, como *.example.com ou www.example.com, é necessário que exista um registro DNS correspondente no console do ESA, ou você deve adicionar manualmente um registro. Caso contrário, as solicitações para o domínio falharão.

  • Se houver múltiplas rotas, elas serão avaliadas em ordem, de cima para baixo. A primeira rota correspondente é aplicada e todas as outras são ignoradas.

Regras de correspondência

  • Uma rota deve incluir tanto um nome de host quanto um caminho. Rotas contendo apenas um caminho, como /path, não são suportadas.

  • Adicione um caractere curinga * no início ou no final de uma rota para abranger mais solicitações. O curinga * corresponde a zero ou mais caracteres. Por exemplo, example.com/* corresponde a todas as solicitações para example.com.

  • As rotas diferenciam maiúsculas de minúsculas. Assim, example.com/a e example.com/A representam duas rotas distintas.

  • Caracteres curinga (*) não podem aparecer no meio de um caminho, e parâmetros de consulta não são suportados nos padrões. Dessa forma, padrões como example.com/*/path e example.com/path?param=1 são inválidos.

  • Quando uma solicitação corresponde a várias rotas, a primeira rota correspondente na lista tem precedência.

Modo Bypass

Ative o Bypass Mode para uma rota envia as solicitações correspondentes ao serviço Functions and Pages como subsolicitações. Use este modo para autenticação ou registro de logs sem interromper o fluxo principal da solicitação para a origem:

imageimage
  1. Um cliente envia uma solicitação para um ponto de presença (POP) do ESA.

  2. A solicitação corresponde a uma rota e é encaminhada ao Functions and Pages para operações como registro de log ou autenticação. No modo bypass, o corpo da solicitação não é encaminhado ao Functions and Pages.

  3. Se o Functions and Pages retornar um código de status 200, a solicitação continua para a próxima etapa. Se retornar qualquer outro código de status, o ESA interrompe o processamento e retorna um código de status 403 ao cliente.

  4. A solicitação prossegue pelo fluxo padrão do ESA, onde é verificada em relação às políticas de cache ou encaminhada ao servidor de origem.

  5. A resposta de um acerto de cache ou do servidor de origem é retornada ao nó do ESA. Neste ponto, a resposta não é mais processada pelo Functions and Pages.

  6. A resposta é enviada ao cliente.

Casos de uso

  • Registro de logs: Use o modo bypass para encaminhar solicitações específicas ao Functions and Pages e definir lógicas personalizadas de log em sua função.

  • Autenticação para downloads de arquivos grandes: Encaminhar respostas grandes através de uma função consome tempo significativo de CPU e aumenta os custos. Use o modo bypass para autenticar primeiro com o Functions and Pages, evitando a transferência do arquivo grande pela função.

Perguntas frequentes

Código para o modo bypass

Tome como exemplo a Assinatura de URL Tipo A:

  • Altere a função de entrada de async fetch() para async bypass().

  • A função deve retornar um valor construído com new ResponseBypass(), que aceita dois parâmetros:

    • O primeiro parâmetro é um booleano (verdadeiro ou falso) indicando se a autenticação foi bem-sucedida.

    • Se a autenticação falhar (falso), passe um segundo parâmetro status para especificar o código de status a ser retornado ao cliente.

Exemplo de código para assinatura Tipo A original

import { createHash } from "node:crypto";

async function handleRequest(request) {
  const url = new URL(request.url);
  const path = url.pathname;
  const delta = 3600;

  const authKeyTypeA = url.searchParams.get('auth_key');

  const privateKey = 'your_secret_key'
  const currentTimestamp = Math.floor(Date.now() / 1000);

  if (!authKeyTypeA) {
    // In an authentication failure scenario, the edge node returns a 403 error to the client by default.
    return new Response('Unauthorized', { 
      status: 401,
    });
  }

  const [timestamp, rand, uid, signature] = authKeyTypeA.split('-');

  if (currentTimestamp > parseInt(timestamp)+ delta) {
    // In an authentication failure scenario, the edge node returns a 403 error to the client by default.
    return new Response('Link expired', {
      status: 403,
    });
  }

  const signString = [path, timestamp, rand, uid, privateKey].join('-');

  const md5 = createHash('md5').update(signString).digest('hex');

  if (md5 !== signature) {
  
    return new Response('Unauthorized', {
      status: 401
    });
  }

  // If the resource is on another domain, fetch it and return the response.
  // const yourUrl = `https://your-dcdn-domain.com${path}${url.search}`
  // const cdnResponse = await fetch(yourUrl, request)
  // return new Response(cdnResponse.body, cdnResponse)

  // In most cases, fetching from the origin is sufficient.
  return fetch(request.url)
}

export default {
  async fetch(request) {
    return handleRequest(request)
  }
}

Exemplo de código para assinatura Tipo A com modo bypass

import { createHash } from "node:crypto";

    async function handleRequest(request) {
      const url = new URL(request.url);
      const path = url.pathname;
      const delta = 3600;

      const authKeyTypeA = url.searchParams.get("auth_key");

      const privateKey = "your_secret_key";
      const currentTimestamp = Math.floor(Date.now() / 1000);

      if (!authKeyTypeA) {
        // Authentication failed. If you pass false, the edge node returns a 403 error to the client by default.
        return new ResponseBypass(false, {
          status: 401,
        });
      }

      const [timestamp, rand, uid, signature] = authKeyTypeA.split("-");

      if (currentTimestamp > parseInt(timestamp) + delta) {
        // Authentication failed. If you pass false, the edge node returns a 403 error to the client by default.
        return new ResponseBypass(false, {
          status: 403,
        });
      }

      const signString = [path, timestamp, rand, uid, privateKey].join("-");

      const md5 = createHash("md5").update(signString).digest("hex");

      if (md5 !== signature) {
        // Authentication failed. If you pass false, the edge node returns a 403 error to the client by default.
        return new ResponseBypass(false, {
          status: 401,
        });
      }

      // Authentication succeeded. If you pass true, the request proceeds to the origin, and the response is no longer processed by this function.
      const resSuccess = new ResponseBypass(true);
      return resSuccess;
    }

    export default {
      async bypass(request) {
        return handleRequest(request);
      },
    };

Modificar configurações de domínio

Se seus domínios e rotas atuais não atenderem mais às suas necessidades, edite-os ou exclua-os.

  1. Faça login no console do ESA. No painel de navegação à esquerda, escolha Edge Computing > Functions and Pages. Clique na instância desejada do Functions and Pages.

  2. Clique na aba Domains.

  3. Na aba Domain Names, clique em Remove para remover um domínio personalizado. Para rotas, clique em Edit ou Delete para modificar ou excluir as configurações.