After reading about how a my-app.herokuapp.com cannot be referenced by an A Record by the simple fact that Heroku has a dynamic implementation of its servers, I chanced upon articles which extolled the uses of ALIAS functions in DNS services like Zerigo and DNsimple as a workaround for this issue.
This SO Post explains this problem has been solved, Point top level domain to heroku app
However I do not follow how exactly to implement the solution.
Assuming I have a functional ALIAS setup in Zerigo which points to my my-app.herokuapp.com how do I then have my current webhost point to this ALIAS for the root domain?
Here is my Hostgator Control Panel which shows how the root domain (fls.net) is directed to a particular server via an A Record. I would like to subistute that A Record with my Zerigo ALIAS. How do I do that? Do I change my A Record to a CName? and then just put the ALIAS name in?
Note:
This post: How to redirect a root (naked) domain to www - heroku and zerigo seemed to have the same issue, except I don't understand why he calls the solution of using an ALIAS as "temporary". Why would it be a temporary solution?
You have to change your domain's name servers to point to Zerigo's name servers. You do this through your HostGator config. Zerigo has an article on the name servers that your domain should use. This article from HostGator explains how to change your domain's name servers. Basically, you want to log in to the HostGator portal and change the name server's to the one's listed in Zerigo's article.
Zerigo can handle the DNS for your domains, but only if DNS resolvers know to look at Zerigo instead of HostGator. Right now, when a DNS resolver (such as the one used by your computer's operating system) looks up the IP address to which yourdomain.com resolves, it first looks for the name servers that handle yourdomain.com, and then queries them. If the name servers point to HostGator, it doesn't matter what records you put in Zerigo, because HostGator will be queried for the domain's associated IP address. If you want Zerigo to handle the DNS resolution, you have to point the name servers to those managed by Zerigo instead.
Related
I have deployed an app on Heroku, and everything is going great when the app is being accessed from the herokuapp.com domain. I tried adding a custom domain and have followed the instructions from the documentation, but unfortunately, I encounter a DNS_PROBE_FINISHED_NXDOMAIN error when trying to access the app from my custom domain.
Some articles pointed out how Heroku requires the usage of ALIAS ANAME or FLATTENING records, which may not be available in DNS providers. I am using a local DNS provider where Name Server configuration is not directly accessible, and only the DNS provider admin can configure it on my request, so I am unable to check the CNAME Records and such (probably because I use .id domain, which I believe to have a somewhat specific configuration due to its affiliation with the country Indonesia, could be wrong though).
For my Name Server, because my DNS Provider requires at least two different name servers, I registered the domains for my Heroku app (from the Heroku settings dashboard > add domain and from the CLI) as follows:
my-domain.id
*.my-domain.id
www.my-domain.id
Is there anything I can do to fix this? Any help would be highly appreciated! Thank you!
EDIT:
I have just been informed by my DNS provider admin that the name servers I used, which I got from Heroku ([haiku].herokudns.com) does not have IP address. Is there anything I did wrong on the configuration?
As it turns out I managed to find my own mistake! It turns out that I provided the DNS Target as Name Server to my provider, which is totally not the same thing. What solved my problem was simply asking the provider to register a CNAME with the DNS target from Heroku as the value.
Be sure to provide the correct DNS Target for the domains as the DNS Target produced for registering root domains like your-domain.com will be different from the DNS Target produced for registering subdomains like www.your-domain.com or when using wildcard tag (*.your-domain.com). Also, note that Heroku doesn't recommend the usage of A Record for root domains, so be sure that your DNS Provider supports the record types needed as this Heroku article suggests.
Thank you #Ruurtjan Pul for getting in touch! Hope this helps!
I am trying to use a custom domain name in Heroku. So I was following the general directions and I had a question about it.
So I want to get rid of the herokuapp.com in example.herokuapp.com, which requires that I buy the example.com domain name.
It says in the first step "Confirm that you own the custom domain name. If not, you can buy one with a domain registration service."
How does heroku know that I bought example.com in the domain registration service?
If you look at your Herokuapp.com dashboard, for your particular app, you'll find that heroku has issued you a specific domain name. Something like some-custom-string.herokudns.com. Notice that this is herokuDNS.com which is different from herokuapp.com (herokuapp.com is used to access your website publicly). Only you have access to this custom dns string.
When you buy a domain name from a registrar, it'll usually also provide a DNS server. You'll then add a CNAME record in your DNS settings to point to your heroku provided some-custom-string.herokudns.com url. Since only you've access to your DNS server settings, if Heroku finds that the cname entry is present in your DNS records, it'll be a confirmation that you own the domain. The steps to do this are described here.
I am having troubles with setting up custom domain for my heroku app.
here is my heroku app:
https://evening-beyond-1234.herokuapp.com/
and let's say it is my domain:
my-fake-domain.com
So I want my app being able at this domain.
I've added this domain to heroku app domains:
$ heroku domains
=== evening-beyond-1234 Heroku Domain
evening-beyond-1234.herokuapp.com
=== evening-beyond-1234 Custom Domains
Domain Name DNS Target
---------------- ---------------------------------
my-fake-domain.com evening-beyond-1234.herokuapp.com
And on the site where I've bought the domain I can change DNS, so I did this:
1) Type of DNS -> DNS from other hosting provider
2) 1st DNS server (*required) -> evening-beyond-1234.herokuapp.com
3) 2nd DNS server (*required) -> evening-beyond-1234.herokuapp.com
I put the same for the second DNS, because it is marked as required, so I need to specify two DNS.
It's been a few days after these changes and it does not work.
There is also another option for changing DNS: extended DNS editor.
I can specify CNAME entries and others there.
Any ideas what I am doing wrong?
I am completely new to this area, it should be just a silly mistake from my side %)
Your configuration is incorrect. What you are doing is that you are changing the name server of your domain, hence moving the delegation to Heroku.
However, Heroku is not an authoritative name server, hence you can't delegate your domain to them.
What you need to do is restore the delegation at your hosting provider and, instead, check the documentation of your hosting/DNS provider to learn how to create an A or CNAME record to point your domain to Heroku.
Also note that you will not be able to point your apex domain (hence my-fake-domain.com to Heroku unless you use one of these DNS providers that support a CNAME-like capability for the apex domain.
Regardless who you use, you can create a CNAME record to point www.my-fake-domain.com to evening-beyond-1234.herokuapp.com.
For my-fake-domain.com you either create an ALIAS/ANAME according to one of those provider documentation, or you redirect the domain to the www version.
This can be done thru Zerigo. But can't i find the nameservers myself from somewhere and update it at the accound where i purchased my domain from ?
Heroku doesn't provide DNS services therefore there are no name servers.
You use your domain name registrars control panel to point your DNS records at your Heroku application. Typically this is a CNAME record pointing at the .herokuapp.com entry. So www.mydomain.com would be a CNAME to myapp.herokuapp.com.
My Domain Name Manager (Brinkster) required name servers, and did not support CNAME records. So I needed to do the following:
Install the Zerigo DNS add-on for my Heroku app.
Add the domain name in the Settings tab of my Heroku app.
In the Resources tab of my Heroku app. click "Zerigo DNS" under "Add-ons".
In the Zerigo management console, click the "Nameservers" tab.
Copy the name servers into the form in Brinkster's Domain Manager control panel.
A bit late to the party, but this is still a problem with wanting to use the Heroku app for the root domain.
I migrated my DNS settings to CloudFlare, as they offer to point the root domain (example.com) as well as aliases (www.example.com) to a CNAME. This allows one to use the Heroku app as the root domain without running into the headache of having to point the root domain to an IP address. You can then install an SSL certificate for the root domain and (typically) the www.example.com alias as well.
I am hosting my website on a servce (open shift, heroku, ect) that doesn't give you a static ip. How do I point my free .tk domain to it. I set up my web site service to accept it, however, .tk domains only allow you to point to a static ip, not domain name. It has a custom dns service but am not sure how to do this. Could you please give a quick explanation. If I need a dns, please tell if there are any free service will fit the bill. Thanks for all the help.
#siamii, I did it with a cname. After creating your .tk domain, go to the domain panel and click modify domain. On the list of options using the mydottk free domain service (The default option) add a new cname. The cname should be structered as, Host domain www.[YourDomainHere].tk and Ip Address: [your heroku web site address]. Now go to your app on heroku.com and go to domain settings on your app's settings page. Add your www.[YourDomainHere].tk to that setting and you should be good to go.
Note: You cannot point a top level( [YourDomainHere].tk) domain to heroku with the mydottk free domain service. The primary way you do this is to redirect from [YourDomainHere].tk to www.[YourDomainHere].tk but the free domain service cannot do that.
cname is the way to go; see our blog on how this can be done.
https://www.openshift.com/blogs/custom-url-names-for-your-paas-applications-host-forwarding-and-cnames-the-openshift-way