Já adicionei um domínio personalizado ao meu aplicativo Heroku e funciona com ele www.domain.com
.
Preciso saber como configurar o domínio sem www
resolver para o aplicativo também.
Aqui estão minhas configurações DNS atuais:
$TTL 86400
@ IN SOA ns1.first-ns.de. postmaster.robot.first-ns.de. (
2013041500 ; serial
14400 ; refresh
1800 ; retry
604800 ; expire
86400 ) ; minimum
@ IN NS robotns3.second-ns.com.
@ IN NS robotns2.second-ns.de.
@ IN NS ns1.first-ns.de.
@ IN A 88.198.38.XXX
localhost IN A 127.0.0.1
mail IN A 88.198.38.XXX
ftp IN CNAME www
imap IN CNAME www
loopback IN CNAME localhost
pop IN CNAME www
relay IN CNAME www
smtp IN CNAME www
www IN CNAME appname.herokuapp.com.
@ IN MX 10 mail
Quais são as configurações corretas a serem usadas para que example.com
e www.example.com
apontem corretamente para o meu aplicativo Heroku?
Respostas:
(Observação: os domínios raiz, base e apex são todos a mesma coisa. Usando de forma intercambiável para google-foo.)
Tradicionalmente, para apontar seu domínio apex, você usaria um registro A apontando para o IP do seu servidor. Esta solução não é escalável e não é viável para uma plataforma de nuvem como o Heroku, onde back-ends múltiplos e em constante mudança são responsáveis por responder às solicitações.
Para subdomínios (como
www.example.com
), você pode usar registros CNAME apontando parayour-app-name.herokuapp.com
. A partir daí, o Heroku gerencia os registros A dinâmicosyour-app-name.herokuapp.com
para que eles estejam sempre atualizados. Infelizmente, a especificação DNS não permite registros CNAME no apex da zona (o domínio base). (Por exemplo, os registros MX quebrariam, pois o CNAME seria seguido até seu destino primeiro.)De volta aos domínios raiz, a solução simples e genérica é não usá-los. Como medida alternativa, alguns provedores de DNS oferecem a configuração de um redirecionamento HTTP para você. Nesse caso, configure-o para que
example.com
seja um redirecionamento HTTP parawww.example.com
.Alguns provedores de DNS apresentaram soluções personalizadas que permitem um comportamento semelhante ao do CNAME no ápice da zona. Até onde sei , temos o registro ALIAS do DNSimple e o registro ANAME do DNS Made Easy ; ambos se comportam de maneira semelhante.
Usando eles, você pode configurar seus registros como (usando a notação zonefile, mesmo que provavelmente faça isso na interface do usuário da web):
Lembre-se de que
@
aqui está um atalho para o domínio raiz (example.com
). Lembre-se também de que os pontos à direita são importantes, tanto em arquivos de zona quanto em algumas interfaces de usuário da web.Veja também:
Observações:
O Amazon's Route 53 também tem um tipo de registro ALIAS, mas é um tanto limitado, pois só funciona para apontar dentro do AWS. No momento, eu não recomendaria usar isso para uma configuração do Heroku.
Algumas pessoas confundem provedores de DNS com registradores de nomes de domínio, pois há um pouco de sobreposição com empresas que oferecem ambos. Lembre-se de que, para mudar seu DNS para um dos provedores mencionados acima, você só precisa atualizar os registros do servidor de nomes com o registrador de domínio atual. Você não precisa transferir seu registro de domínio.
fonte
Para apontar seu domínio apex / root / naked para um aplicativo hospedado pelo Heroku, você precisará usar um provedor de DNS que ofereça suporte a registros do tipo CNAME (geralmente chamados de registros ALIAS ou ANAME). Atualmente, o Heroku recomenda :
Qualquer que você escolher, seu registro terá a seguinte aparência:
Registro:
ALIAS
ouANAME
Nome: vazio ou
@
Alvo:
example.com.herokudns.com.
É tudo que você precisa.
No entanto, não é bom para o SEO ter a versão www e a não-www resolvidas. Um deve apontar para o outro como o URL canônico. Como você decide fazer isso depende se você está usando HTTPS ou não. E se você não estiver, provavelmente deveria estar, pois o Heroku agora lida com certificados SSL para você automaticamente e gratuitamente para todos os aplicativos executados em dinamômetros pagos.
Se não estiver usando HTTPS, você pode apenas configurar um registro de redirecionamento 301 com a maioria dos provedores de DNS apontando
www
para o nomehttp://example.com
.Se você estiver usando HTTPS, provavelmente precisará lidar com o redirecionamento no nível do aplicativo. Se você quer saber por que, confira essas curta e longa explicações mas basicamente, como seu provedor de DNS ou outro serviço de encaminhamento de URL não tem, e não deveria ter, seu certificado SSL e chave privada, eles não podem responder a HTTPS solicitações para o seu domínio.
Para lidar com os redirecionamentos no nível do aplicativo, você precisará:
heroku domains:add example.com
eheroku domains:add www.example.com
)www
apontando parawww.example.com.herokudns.com.
SECURE_SSL_REDIRECT
comoTrue
)Confira esta postagem do DNSimple para mais informações.
fonte
Agora estou usando o Google Apps (para e-mail) e o Heroku como servidor da web. Estou usando o recurso de redirecionamento permanente 301 do Google Apps para redirecionar o domínio sem www para WWW.seu_domínio.com
Você pode encontrar as instruções passo a passo aqui https://stackoverflow.com/a/20115583/1440255
fonte
Você não tem permissão para ter um registro CNAME para o domínio, pois o CNAME é um recurso de aliasing que cobre todos os tipos de dados (independentemente de o cliente procurar registros MX, NS ou SOA). Os CNAMEs também sempre se referem a um novo nome, não a um endereço IP, portanto, há na verdade dois erros em uma única linha
Alterar esse CNAME para um registro A deve funcionar, desde que o endereço IP que você usa seja o correto para o seu aplicativo Heroku.
A única maneira correta no DNS de fazer um
domain.com
nome simples funcionar no navegador é apontar o domínio para um endereço IP com um registro A.fonte
host app-name.herokuapp.com
os resultados são dinâmicos. Se você os codificar, seu aplicativo eventualmente travará. Veja as soluções ANAME / CNAME recomendadas em outro comentário.