O que é subdomínio e quando usar

Subdomínio é um nome adicionado à esquerda de um domínio, como api em api.meusite.com.br. Ele tem registros DNS próprios e pode apontar para outro servidor.

Atualizado em 4 min de leitura

Objetivos de aprendizado

Depois de ler este artigo, você vai conseguir:

  • Entender o que é um subdomínio e como ele aparece no DNS
  • Criar um subdomínio com um registro CNAME ou A
  • Decidir entre subdomínio e subpasta para o seu projeto
Nesta página

Você registra meusite.com.br uma vez. Depois disso, pode criar www.meusite.com.br, api.meusite.com.br e painel.meusite.com.br sem registrar nada novo. Cada um desses nomes extras é um subdomínio.

Subdomínios são a forma padrão de separar partes de um projeto: o site, a API, a documentação, o ambiente de testes. Cada parte pode rodar em um servidor diferente, com seu próprio certificado e suas próprias regras.

raizsufixo públicodomínioregistradosubdomínioscriados no DNSservidoresdiferentes.com.brmeusitewwwSite203.0.113.10apiAPI203.0.113.20blogBlogoutro provedor
Lido da direita para a esquerda, cada rótulo desce um nível; abaixo do domínio registrado, cada subdomínio aponta para onde você quiser.

O que é um subdomínio?#

Um subdomínio é um nome criado à esquerda de um domínio existente. No DNS, o nome se lê da direita para a esquerda, e cada pedaço separado por ponto é um rótulo:

text
api . meusite . com . br
 |       |       |     |
 |       |       |     TLD (nível mais alto)
 |       |       sufixo público (com.br)
 |       domínio registrado
 subdomínio

O domínio registrado (meusite.com.br) é a parte que você paga para registrar. Tudo que fica à esquerda dele é seu para organizar. Os conceitos vêm das RFCs 1034 e 1035, que descrevem o DNS como uma árvore em que cada nó delega os níveis abaixo.

Como o DNS trata um subdomínio?#

Cada subdomínio pode ter registros DNS próprios. O DNS de api.meusite.com.br não precisa apontar para o mesmo lugar que www.meusite.com.br.

Um arquivo de zona simplificado:

text
meusite.com.br.        3600  IN  A      203.0.113.10
www.meusite.com.br.    3600  IN  CNAME  meusite.com.br.
api.meusite.com.br.    3600  IN  A      203.0.113.20
blog.meusite.com.br.   3600  IN  CNAME  minha-conta.exemplo-blog.com.

Aqui o site e a API ficam em IPs diferentes, e o blog é servido por um provedor externo. Você pode conferir o resultado com dig:

bash
dig +short api.meusite.com.br A

Os limites de tamanho vêm da RFC 1035: cada rótulo tem até 63 caracteres e o nome completo, até 255 octetos na forma binária (253 caracteres em texto). A sintaxe recomendada para hostnames (seção 2.3.1) usa letras, números e hifens.

Como criar um subdomínio?#

No painel de DNS do provedor que responde pelo seu domínio:

  1. Escolha o tipo de registro. Se o destino é um IP, use A (IPv4) ou AAAA (IPv6). Se o destino é outro nome, como o de um serviço externo, use CNAME.
  2. No campo de nome, escreva só o prefixo (api). A maioria dos painéis completa o domínio sozinha.
  3. Preencha o valor (o IP ou o nome de destino) e salve.
  4. Aguarde o TTL expirar nos caches. Veja como funciona a propagação de DNS.

Um detalhe que pega muita gente: o CNAME não pode coexistir com outros registros no mesmo nome (RFC 1912, seção 2.4). Como o domínio raiz (meusite.com.br) sempre tem registros NS e SOA, ele não aceita CNAME. Subdomínios aceitam. Alguns provedores de DNS oferecem um registro proprietário (ALIAS ou ANAME) que imita CNAME na raiz, mas isso não faz parte do padrão.

E o subdomínio curinga (wildcard)?#

Um registro *.meusite.com.br responde por qualquer nome sob o domínio que não exista na zona (RFC 4592). É útil para sistemas em que cada cliente ganha um endereço, como cliente1.meusite.com.br. O custo é que nomes digitados errado também resolvem, e o certificado TLS precisa cobrir os nomes usados. Veja como funciona o SSL/TLS.

Subdomínio ou subpasta?#

Subdomínio (blog.meusite.com) Subpasta (meusite.com/blog)
Servidor Pode ser outro Mesmo host
DNS Registro próprio Nenhum registro extra
Certificado TLS Precisa cobrir o nome Já coberto pelo do domínio
Cookies Compartilhados só se o cookie declarar o domínio pai Compartilhados por padrão
Indicado para API, painel, ambiente de testes, serviço de terceiros Conteúdo do mesmo site

Use subdomínio quando a parte do projeto roda em outro lugar, usa outra tecnologia ou precisa de isolamento. Use subpasta quando é conteúdo do mesmo site e você quer tudo sob um único host.

Quando o "subdomínio" não é seu?#

com.br, co.uk e github.io são sufixos públicos: a Public Suffix List (publicsuffix.org) registra onde termina o "domínio registrável". Por isso meusite.com.br é um domínio seu, e com.br não. Navegadores usam essa lista para impedir que um site defina cookies para todos os outros sob o mesmo sufixo.

Quando um serviço entrega a você seuapp.provedor.com, isso é um subdomínio do provedor, não seu. Você não controla o DNS dele e, para ter um nome próprio, precisa apontar um domínio seu. Veja como usar um domínio personalizado e como apontar o domínio para a sua aplicação.

Como fazer isso na Square Cloud#

Toda aplicação web na Square Cloud ganha um subdomínio *.squareweb.app com HTTPS, em todos os planos. Serve para testar e para receber webhooks (o Telegram, por exemplo, exige HTTPS).

Para usar api.meusite.com.br, você precisa de domínio personalizado, disponível a partir do plano Standard. No seu registrador, você cria os registros DNS que o painel mostra e acompanha o status da validação em tempo real. O TLS é automático. O domínio continua registrado em seu nome no seu registrador, e a zona DNS continua sob o seu controle, no seu provedor de DNS.

Se o mesmo domínio precisa ser servido por mais de uma aplicação, use o load balancing de domínio personalizado, com round-robin e failover passivo. Veja os detalhes em Domínios e em Load balancing.

Rede

Domínio próprio, TLS automático e CDN global para o seu app

Saiba mais

Perguntas frequentes

Subdomínio é pago?

Normalmente não. Você registra o domínio principal e cria quantos subdomínios quiser no painel de DNS, sem custo por subdomínio. A cobrança é do registro do domínio, não dos nomes criados abaixo dele.

Qual a diferença entre subdomínio e subpasta?

Subdomínio é blog.meusite.com e pode apontar para outro servidor. Subpasta é meusite.com/blog e fica no mesmo host. Para o DNS são coisas diferentes: só o subdomínio tem registros próprios.

Posso usar CNAME no domínio raiz?

Não pelo padrão do DNS: o CNAME não pode coexistir com outros registros do mesmo nome, e o domínio raiz sempre tem NS e SOA. Use registro A ou AAAA, ou o ALIAS/ANAME, se o seu provedor de DNS oferecer.

Quantos níveis de subdomínio posso ter?

Cada rótulo tem até 63 caracteres e o nome completo até 253 caracteres no formato de texto. Dentro disso, você pode encadear níveis, como v2.api.meusite.com.br.

Próximo artigoHTTP vs HTTPS: por que o navegador mostra 'não seguro'HTTPS é o HTTP dentro de uma conexão TLS criptografada. Veja as diferenças, por que o navegador marca 'não seguro' e como migrar seu site sem quebrar nada.

Mais em Rede e domínios

Ver todos os 27 artigos