J'ai déjà ajouté un domaine personnalisé à mon application Heroku et cela fonctionne avec www.domain.com
.
J'ai besoin de savoir comment configurer le domaine sans www
pour résoudre l'application également.
Voici mes paramètres DNS actuels:
$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
Quels sont les paramètres corrects à utiliser pour que example.com
et www.example.com
pointerais-je correctement vers mon application Heroku?
(Remarque: les domaines racine, base et sommet sont tous identiques. Utiliser de manière interchangeable pour google-foo.)
Traditionnellement, pour pointer votre domaine apex, vous utilisiez un enregistrement A pointant vers l'adresse IP de votre serveur. Cette solution n'évolue pas et n'est pas viable pour une plate-forme cloud telle que Heroku, où plusieurs serveurs principaux et fréquemment modifiés sont chargés de répondre aux demandes.
Pour les sous-domaines (comme www.example.com
) vous pouvez utiliser les enregistrements CNAME pointant vers your-app-name.herokuapp.com
. A partir de là, Heroku gère les enregistrements A dynamiques derrière le your-app-name.herokuapp.com
afin qu'ils soient toujours à jour. Malheureusement, la spécification DNS n'autorise pas les enregistrements CNAME sur l'apex de la zone (le domaine de base). (Par exemple, les enregistrements MX se briseraient lorsque le CNAME serait suivi en premier sur sa cible.)
Retour aux domaines racine, la solution simple et générique est de ne pas les utiliser du tout. Par mesure de repli, certains fournisseurs DNS proposent de configurer une redirection HTTP pour vous. Dans ce cas, configurez-le pour que example.com
est une redirection HTTP vers www.example.com
.
Certains fournisseurs DNS ont proposé des solutions personnalisées autorisant un comportement semblable à CNAME au sommet de la zone. À ma connaissance, nous avons enregistrement ALIAS de DNSimple et enregistrement ANAME de DNS Made Easy ; les deux se comportent de la même manière.
En utilisant ceux-ci, vous pouvez configurer vos enregistrements comme (en utilisant la notation zonefile, même si vous le ferez probablement sur leur interface utilisateur Web):
@ IN ALIAS your-app-name.herokuapp.com.
www IN CNAME your-app-name.herokuapp.com.
Rappelles toi @
voici un raccourci pour le domaine racine (example.com
). Notez également que les points de fin sont importants, à la fois dans les fichiers de zone et dans certaines interfaces utilisateur Web.
La route 53 d'Amazon a également un type d'enregistrement ALIAS, mais il est quelque peu limité, car il ne fonctionne que pour pointer dans AWS. Pour le moment, je ne recommanderais pas d'utiliser ceci pour une configuration Heroku.
Certaines personnes confondent les fournisseurs DNS avec les registraires de noms de domaine, car il y a un peu de chevauchement avec les entreprises offrant les deux. Notez que pour basculer votre DNS vers l’un des fournisseurs susmentionnés, il vous suffit de mettre à jour vos enregistrements de serveur de noms avec votre registraire de domaine actuel. Vous n'avez pas besoin de transférer votre enregistrement de domaine.
Pour que votre domaine apex/root/naked pointe vers une application hébergée par Heroku, vous devez utiliser un fournisseur DNS prenant en charge les enregistrements de type CNAME (souvent appelés enregistrements ALIAS ou ANAME). Actuellement Heroku recommande :
Quel que soit votre choix, votre dossier ressemblera à ce qui suit:
Enregistrement: ALIAS
ou ANAME
Nom: vide ou @
Cible: example.com.herokudns.com.
C'est tout ce dont vous avez besoin.
Cependant, il est ce n'est pas bien pour le référencement de résoudre à la fois les versions www et non www. L'un devrait pointer sur l'autre en tant qu'URL canonique. La façon dont vous décidez de le faire dépend si vous utilisez HTTPS ou non. Et si vous ne l'êtes pas, vous devriez probablement être comme Heroku maintenant gère les certificats SSL pour vous automatiquement et gratuitement pour toutes les applications fonctionnant sur des dynos payants.
Si vous n'utilisez pas HTTPS, vous pouvez simplement configurer un enregistrement de redirection 301 avec la plupart des fournisseurs DNS pointant le nom www
sur http://example.com
.
Si vous are utilisez HTTPS, vous devrez probablement gérer la redirection au niveau de l'application. Si vous voulez savoir pourquoi, consultez ces explications courtes et longues , mais fondamentalement, puisque votre fournisseur DNS ou un autre service de transfert d'URL n'a pas et ne devrait pas avoir, votre certificat SSL et votre clé privée, ils ne peuvent pas répondre aux demandes HTTPS de votre domaine.
Pour gérer les redirections au niveau de l'application, vous devez:
heroku domains:add example.com
et heroku domains:add www.example.com
)www
pointant vers www.example.com.herokudns.com.
SECURE_SSL_REDIRECT
à True
)Départ ce post de DNSimple pour plus.
J'utilise maintenant Google Apps (pour la messagerie électronique) et Heroku comme serveur Web. J'utilise la fonctionnalité de redirection permanente de Google Apps 301 pour rediriger le domaine nu vers WWW.votre_domaine.fr
Vous pouvez trouver les instructions étape par étape ici https://stackoverflow.com/a/20115583/1440255
Vous n'êtes pas autorisé à avoir un enregistrement CNAME pour le domaine, car CNAME est une fonction de repliement de spectre qui couvre tous les types de données (que le client recherche MX ou pas, NS ou SOA enregistrements). Les CNAME font aussi toujours référence à un nouveau nom, pas à une adresse IP, il y a donc deux erreurs dans la ligne unique.
@ IN CNAME 88.198.38.XXX
Le fait de changer ce CNAME en un enregistrement A devrait le faire fonctionner, à condition que l'adresse IP que vous utilisez soit celle qui convient pour votre application Heroku.
La seule manière correcte dans le DNS de créer un simple domain.com
nom fonctionne dans le navigateur, est de pointer le domaine vers une adresse IP avec un enregistrement A.