Um domínio dá para muito mais do que um site. Pode ter app.midominio.com numa máquina, intranet.midominio.com noutra e clientes.midominio.com num serviço externo, sem comprar mais nada: são subdomínios, e no Route 53 cada um é uma linha. E há a eterna pergunta do www: que as duas formas de escrever o seu domínio levem ao mesmo site. Este guia resolve as duas coisas e esclarece um mal-entendido frequente: o DNS diz para onde vai cada nome, mas não faz redirecionamentos; isso é o servidor que faz.
Antes de começar: o que significa cada coisa
- Domínio e subdomínio
- midominio.com é o domínio; qualquer coisa à frente dele separada por um ponto (app.midominio.com) é um subdomínio. Criam-se no DNS, não se compram.
- Route 53 e zona alojada
- O DNS da Amazon e o "processo" do seu domínio dentro dele, com todos os seus registos.
- Registo A
- Um nome aponta para um endereço IP. É o que se usa para uma máquina sua.
- Registo CNAME
- Um nome aponta para outro nome. Usa-se para serviços externos ("clientes.midominio.com vai para qualquer-coisa.fornecedor.com"). Não se pode pôr na raiz do domínio.
- Registo alias
- Uma invenção do Route 53 que funciona como um CNAME mas também na raiz, para apontar para serviços da AWS (CloudFront, balanceadores, buckets).
- Curinga (*)
- Um registo *.midominio.com responde por qualquer subdomínio que não tenha o seu próprio registo.
- Redirecionamento
- Que ao abrir um endereço o navegador acabe noutro. É feito pelo servidor web (ou por um serviço), não pelo DNS.
- TTL
- Segundos durante os quais os outros podem guardar a resposta. Baixo enquanto muda coisas, alto quando está estável.
Passo a passo
Abra a zona do seu domínio
Consola do Route 53, Zonas hospedadas, clique no seu domínio. Verá os registos que já tem: o A da raiz, talvez o de www, os MX do e-mail. Cada subdomínio novo será mais um registo nesta lista.
Crie um subdomínio para uma máquina sua
Criar registro. Nome: só a parte da frente (
app; o Route 53 acrescenta o domínio). Tipo A. Valor: o IP fixo da máquina. TTL 300. Criar. Em poucos minutosapp.midominio.comchega a essa máquina; o servidor web da máquina tem de saber responder por esse nome (um "virtual host" ou "server block"), senão mostrará o site por defeito.Crie um subdomínio para um serviço externo
O seu fornecedor de helpdesk, loja ou newsletter diz-lhe algo como "crie um CNAME de
clientesparamidominio.proveedor.com". Pois é isso: Criar registro, nomeclientes, tipo CNAME, valor o nome que lhe deram (sem http:// e sem barra final). Se o fornecedor for um serviço da AWS (CloudFront, um balanceador), use o tipo A com a caixa Alias ativada e escolha-o na lista.Decida o que fazer com o www
O primeiro é que os dois nomes cheguem ao seu servidor: a raiz com um registo A para o IP, e
wwwcom outro A para o mesmo IP (ou um CNAME paramidominio.com). Até aqui, o DNS. O segundo é escolher qual é o nome "oficial" (o normal hoje é sem www) e que o outro redirecione para ele, para que o Google não veja dois sites iguais e o cadeado funcione nos dois.Faça o redirecionamento no servidor
Isto não se faz no Route 53. Na máquina, o servidor web tem de responder a
www.midominio.comcom um redirecionamento permanente (código 301) paramidominio.com. No Apache, no bloco do site:RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.midominio\.com$ [NC] RewriteRule ^(.*)$ https://midominio.com/$1 [R=301,L]No Nginx é um bloco
serverpara o www com umreturn 301. Se usar os modelos Bitnami do Lightsail, a ferramentabncert-toolpergunta exatamente isto ao instalar o certificado e configura-o por si. O certificado HTTPS deve cobrir os dois nomes.Verifique e suba o TTL
Abra as quatro combinações (com e sem www, com http e https): todas devem acabar em
https://midominio.comcom cadeado. Abra o subdomínio novo. Quando tudo estiver estável há uns dias, suba o TTL dos registos para 3600 ou mais: menos consultas e respostas mais rápidas.
O que pode correr mal
O Route 53 não me deixa criar um CNAME na raiz
É uma regra do DNS. Na raiz use um registo A com o IP, ou um alias se o destino for um serviço da AWS. Se o destino for um serviço externo que só lhe dá um nome, pergunte-lhe se tem um IP fixo ou use o CloudFront à frente.
O subdomínio resolve mas mostra outro site
O DNS fez a sua parte; o servidor não sabe que esse nome é dele e mostra o site por defeito. Acrescente o nome ao virtual host (Apache) ou server block (Nginx) do site correspondente.
Quero um subdomínio para cada cliente sem criar registos um a um
Crie um registo curinga: nome *, tipo A, IP da máquina. Qualquer loquesea.midominio.com chegará lá, e a sua aplicação decide o que mostrar consoante o nome. Os registos concretos que criar à parte têm prioridade sobre o curinga.
Mudei um registo e não se nota
TTL. Os servidores intermédios guardam a resposta antiga até ela expirar. Baixe o TTL uns dias antes de uma mudança prevista; se já está feita, só resta esperar.
No Simplio
No Simplio cada domínio do Route 53 é um cartão onde os registos se leem em linguagem normal e criar um subdomínio é escolher o nome e a máquina de destino numa lista: o IP é o Simplio que o põe. Os registos de serviços externos acrescentam-se numa linha com ajuda consoante o tipo, substituir um existente pede confirmação e retirar um pede o duplo fator. E fica no registo de atividade quem mudou o quê.
O mesmo, na AWS e no Simplio
| Na consola da AWS | No Simplio | |
|---|---|---|
| Criar um subdomínio | Route 53, Criar registro, escolher o tipo entre 12 opções, TTL | Linha "app → esta máquina" no cartão do domínio, com o IP já posto |
| Saber para onde aponta cada nome | Ler a tabela de registos técnicos | Lista em linguagem normal: "o site vai para a máquina X, o e-mail é recebido por Y" |
| Estragar algo | Qualquer pessoa com acesso pode apagar um registo | Retirar um registo pede duplo fator; NS e SOA estão protegidos |