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 autant me résoudre à l'application.
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 afin que les deux example.com
et www.example.com
pointerait correctement à mon application Heroku?
Réponses:
(Remarque: les domaines racine, de base et apex sont tous la même chose. Utilisation interchangeable pour google-foo.)
Traditionnellement, pour pointer votre domaine apex, vous utiliseriez un enregistrement A pointant vers l'adresse IP de votre serveur. Cette solution ne s'adapte pas et n'est pas viable pour une plate-forme cloud comme Heroku, où de multiples backends changeants sont chargés de répondre aux demandes.
Pour les sous-domaines (comme
www.example.com
), vous pouvez utiliser des enregistrements CNAME pointant versyour-app-name.herokuapp.com
. À partir de là, Heroku gère les enregistrements A dynamiques derrièreyour-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 seraient interrompus car le CNAME serait d'abord suivi jusqu'à sa cible.)De retour aux domaines racine, la solution simple et générique est de ne pas les utiliser du tout. Comme mesure de secours, certains fournisseurs DNS proposent de configurer une redirection HTTP pour vous. Dans ce cas, configurez-le pour qu'il s'agisse d'
example.com
une redirection HTTP verswww.example.com
.Certains fournisseurs DNS ont proposé des solutions personnalisées qui permettent un comportement de type CNAME sur l'apex de la zone. A ma connaissance, nous avons le dossier ALIAS de DNSimple et le dossier 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 de fichier de zone, même si vous le ferez probablement sur leur interface utilisateur Web):
N'oubliez pas que
@
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.Voir également:
Remarques:
La Route 53 d'Amazon a également un type d'enregistrement ALIAS, mais il est quelque peu limité, en ce sens qu'il ne fonctionne que pour pointer dans AWS. Pour le moment, je ne recommanderais pas de l'utiliser pour une configuration Heroku.
Certaines personnes confondent les fournisseurs DNS avec les bureaux d'enregistrement de noms de domaine, car il y a un peu de chevauchement avec les entreprises offrant les deux. N'oubliez pas 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.
la source
Pour pointer votre domaine apex / racine / nu vers une application hébergée par Heroku, vous devrez utiliser un fournisseur DNS qui prend en charge les enregistrements de type CNAME (souvent appelés enregistrements ALIAS ou ANAME). Actuellement Heroku recommande :
Quel que soit celui que vous choisissez, votre enregistrement ressemblera à ce qui suit:
Enregistrer:
ALIAS
ouANAME
Nom: vide ou
@
Cible:
example.com.herokudns.com.
C'est tout ce dont vous avez besoin.
Cependant, il n'est pas bon pour le SEO de résoudre à la fois la version www et la version non www. L'un doit pointer vers l'autre comme URL canonique. La façon dont vous décidez de faire cela dépend de si vous utilisez HTTPS ou non. Et si vous ne l'êtes pas, vous devriez probablement l'être car Heroku gère désormais 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
vershttp://example.com
.Si vous êtes utilisez HTTPS, vous aurez probablement besoin de gérer la redirection au niveau de l' application. Si vous voulez savoir pourquoi, consultez ces explications courtes et longues , mais essentiellement 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 à HTTPS demandes pour votre domaine.
Pour gérer les redirections au niveau de l'application, vous devrez:
heroku domains:add example.com
etheroku domains:add www.example.com
)www
pointe verswww.example.com.herokudns.com.
SECURE_SSL_REDIRECT
surTrue
)Consultez cet article de DNSimple pour en savoir plus.
la source
J'utilise désormais 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.com
Vous pouvez trouver les instructions étape par étape ici https://stackoverflow.com/a/20115583/1440255
la source
Vous n'êtes pas autorisé à avoir un enregistrement CNAME pour le domaine, car le CNAME est une fonctionnalité d'alias qui couvre tous les types de données (que le client recherche des enregistrements MX, NS ou SOA). Les CNAME font également toujours référence à un nouveau nom, pas à une adresse IP, il y a donc en fait deux erreurs dans la seule ligne
Changer ce CNAME en enregistrement A devrait le faire fonctionner, à condition que l'adresse IP que vous utilisez soit la bonne pour votre application Heroku.
La seule façon correcte dans DNS de faire fonctionner un
domain.com
nom simple dans le navigateur, est de pointer le domaine vers une adresse IP avec un enregistrement A.la source
host app-name.herokuapp.com
les résultats sont dynamiques. Si vous les codez en dur, votre application finira par s'arrêter. Voir les solutions ANAME / CNAME recommandées dans un autre commentaire.