ERR_NAME_NOT_RESOLVED with DNS resolution OVH and Heroku - heroku

I have an app on heroku which I'm used to address with a .com tld. But for SEO reasons, I want to address it with a .fr tld.
I have made some changes in DNS to do it but the only thing I get is ERR_NAME_NOT_RESOLVED.
On .com, I have this config on my OVH (french host) which work :
matosmaison.com. 0 A 54.228.198.226
www.matosmaison.com. 0 CNAME matosbricolage.herokuapp.com.
On .fr, I have put this :
matosmaison.fr. 0 A 54.228.198.226
www.matosmaison.fr. 0 CNAME matosbricolage.herokuapp.com.
In heroku, I have added the concerned domains into the app :
matosmaison.com -> matosbricolage.herokuapp.com
matosmaison.fr -> matosbricolage.herokuapp.com
www.matosmaison.com -> matosbricolage.herokuapp.com
www.matosmaison.fr -> matosbricolage.herokuapp.com
As you can ry, the .com domain works (maybe from a month ago) but the .fr not.
Any suggestion ? Thanks in advance !

According to dig (via digwebinterface) you don't have a CNAME registered for www.matosmaison.fr. (presuming that is the actual domain you're having problems with!)

You shouldn't use ip address since heroku uses a loadbalancer. You might encounter problem.
I think it's better to use cname like
* IN CNAME yourname.herokuapp.com.
www IN NAME yourname.herokuapp.com.
IN CNAME www.yourname.com.

Related

DNS Problems with Heroku

I'm having some problems configuring the DNS settings for my custom domain to work correctly on Heroku.
I have set the DNS records as follows:
Host Type Points to
example.com WR www.example.com
www.example.com CNAME example.herokuapp.com
www.example.com.au CNAME example.herokuapp.com
However, the 'www.example.com' domain sometimes fails to load on my computer, as well as my client's phone. It seems rare for this domain to fail (it works fine on everyone else's computers that I've asked), but the fact that it doesn't work on mine and my client's computers is a problem.
However, the '.com.au' domain (and the heroku one) always works. Why is this?
Is there anything wrong with the configuration above? I followed the 'custom domain names' article on heroku to reach this configuration (I don't have much experience with DNS, unfortunately). The DNS provider I am using does not support ANAME or ALIAS so I went with the above config instead.
Thanks. Any help in getting the '.com' domain working on every device would be appreciated.
I'm not really sure, it may be a lot of things, DNS caching and other stuff.
But if you don't have a lot of DNS records, I suggest you use a heroku add-on like PointDNS (https://addons.heroku.com/pointdns) as it supports ALIAS.

Heroku custom domain

Would like to learn how website works.
Purchased a domain name from bigrock domain registrar.
Am used to deploy applications to Heroku for my official websites.
But this is my personal site deployed to Heroku.
But how to connect my domain name to heroku ?
Heroku documentation is not clear to me.
I tried domain forwarding after playing with google search, but my site http://www.prithvibhargav.com/ is still giving me blank page.
Where as the heroku default website address still works
http://afternoon-cove-8287.herokuapp.com/
How to make my domain name to connect to heroku and work ?
There are so many terminoliges people use which is confusing
CName , A address, 301 redirect, domain forwarding
Which one to choose ?
You need to set your DNS to point to your heroku address. You should be able to go into the DNS settings in bigrock (where you registered the domain) and create CName record that will forward from your domain (http://www.prithvibhargav.com) to the heroku address (http://afternoon-cove-8287.herokuapp.com/)

Custom root domain on Heroku

I have a domain, example.com, that I want to use for my rails-app that resides at example.herokuapp.com and I'm pretty confused how to go about to do this.
Heroku says
"Zone apex domains (aka "naked", "bare" or "root" domains), e.g.,
example.com, using conventional DNS A-records are not supported on
Heroku." And then they go on explaining workarounds (using ALIAS or
ANAME).
I have spent a good hour reading up on the subject (here on SO and elsewhere) but still don't get my head around this.
Are there any alternative ways or explanations on how to acomplish this for "a dummy"?
I'll take a stab at this as it's a frequent question.
Ok, so assuming you have a domain example.com and you want to use www.example.com to host your site. In traditional hosting you'd probably have a virtual server which has been assigned an IP address, in this case you would use a host record, otherwise known as an A record in DNS control panels to map www.example.com to the IP address. In this case, since you have now set www.example.com to a fixed IP address should that IP address ever change you will need to update your DNS yourself.
Also, with traditional hosting you could have example.com set to the same IP address so www.example.com and example.com would work for naked domains.
Ok, so what's a CNAME record. A CNAME record rather than mapping to an IP address maps the record to another DNS entry. So, www.example CNAME'd to example.herokuapp.com means that Heroku can and may move where example.herokuapp.com is pointing at but you don't have to update anything as you're using an CNAME record and Heroku are managing where example.herokuapp.com is pointing (which can and may be another CNAME or an IP address). The problem with CNAME records is that they CANNOT point to an IP address, which is fine for www.example.com but a problem with example.com. Heroku previously published IP addresses to be used for naked domains but problems ensued when they suffered DDOS attacks and couldn't replace those IPs with new ones as they were published IP addresses. For the new EU region, Heroku ARE NOT publishing IP addresses for use with naked domains.
What several DNS providers (DNSsimple I know is one) have done is add their own ALIAS records to their DNS servers to allow you to use CNAME's with naked domains so both www.example.com and example.com will work as now supported by Heroku. If you DNS provider does not support ALIAS records then it's worth moving the domain to a DNS provider that does support it. DNSsimple also supports redirect records so you can have www.example.com redirect to example.com at the DNS provider level and not at your application layer.
Found this:
http://blog.cloudflare.com/zone-apex-naked-domain-root-domain-cname-supp
CloudFlare provides a whole bunch of other benefits as well. I've been using them for all of my Heroku apps and I'm quite pleased to be honest.
They provide a lot value for free from my experience with them thus far.
If you look at DNS records specification you'll find no such record as ANAME.
The best way to solve this problem is:
Make CNAME entry for www subdomain to your heroku app, and CNAME record for root domain to www subdomain.
www.domain.com. 3600 IN CNAME app.herokuapp.com.
# 3600 IN CNAME www.domain.com.
P.S. It works, and do not make you waste money for mystic DNS records

How do I set up DNS for an apex domain (no www) pointing to a Heroku app?

I already added a custom domain to my Heroku app and it works with www.domain.com.
I need to know how to set up the domain without www to resolve to the app, too.
Here are my current DNS settings:
$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
What are the correct settings to use so that both example.com and www.example.com would point correctly to my Heroku app?
(Note: root, base, apex domains are all the same thing. Using interchangeably for google-foo.)
Traditionally, to point your apex domain you'd use an A record pointing to your server's IP. This solution doesn't scale and isn't viable for a cloud platform like Heroku, where multiple and frequently changing backends are responsible for responding to requests.
For subdomains (like www.example.com) you can use CNAME records pointing to your-app-name.herokuapp.com. From there on, Heroku manages the dynamic A records behind your-app-name.herokuapp.com so that they're always up-to-date. Unfortunately, the DNS specification does not allow CNAME records on the zone apex (the base domain). (For example, MX records would break as the CNAME would be followed to its target first.)
Back to root domains, the simple and generic solution is to not use them at all. As a fallback measure, some DNS providers offer to setup an HTTP redirect for you. In that case, set it up so that example.com is an HTTP redirect to www.example.com.
Some DNS providers have come forward with custom solutions that allow CNAME-like behavior on the zone apex. To my knowledge, we have DNSimple's ALIAS record and DNS Made Easy's ANAME record; both behave similarly.
Using those, you could setup your records as (using zonefile notation, even tho you'll probably do this on their web user interface):
# IN ALIAS your-app-name.herokuapp.com.
www IN CNAME your-app-name.herokuapp.com.
Remember # here is a shorthand for the root domain (example.com). Also mind you that the trailing dots are important, both in zonefiles, and some web user interfaces.
See also:
Doing DNS right with Heroku
Avoiding Naked Domains and DNS A-records
Remarks:
Amazon's Route 53 also has an ALIAS record type, but it's somewhat limited, in that it only works to point within AWS. At the moment I would not recommend using this for a Heroku setup.
Some people confuse DNS providers with domain name registrars, as there's a bit of overlap with companies offering both. Mind you that to switch your DNS over to one of the aforementioned providers, you only need to update your nameserver records with your current domain registrar. You do not need to transfer your domain registration.
To point your apex/root/naked domain at a Heroku-hosted application, you'll need to use a DNS provider who supports CNAME-like records (often referred to as ALIAS or ANAME records). Currently Heroku recommends:
ALIAS at DNSimple
ANAME at DNS Made Easy
ANAME at easyDNS
ALIAS at PointDNS
CNAME at CloudFlare
Whichever of those you choose, your record will look like the following:
Record: ALIAS or ANAME
Name: empty or #
Target: example.com.herokudns.com.
That's all you need.
However, it's not good for SEO to have both the www version and non-www version resolve. One should point to the other as the canonical URL. How you decide to do that depends on if you're using HTTPS or not. And if you're not, you probably should be as Heroku now handles SSL certificates for you automatically and for free for all applications running on paid dynos.
If you're not using HTTPS, you can just set up a 301 Redirect record with most DNS providers pointing name www to http://example.com.
If you are using HTTPS, you'll most likely need to handle the redirection at the application level. If you want to know why, check out these short and long explanations but basically since your DNS provider or other URL forwarding service doesn't have, and shouldn't have, your SSL certificate and private key, they can't respond to HTTPS requests for your domain.
To handle the redirects at the application level, you'll need to:
Add both your apex and www host names to the Heroku application (heroku domains:add example.com and heroku domains:add www.example.com)
Set up your SSL certificates
Point your apex domain record at Heroku using an ALIAS or ANAME record as described above
Add a CNAME record with name www pointing to www.example.com.herokudns.com.
And then in your application, 301 redirect any www requests to the non-www URL (here's an example of how to do it in Django)
Also in your application, you should probably redirect any HTTP requests to HTTPS (for example, in Django set SECURE_SSL_REDIRECT to True)
Check out this post from DNSimple for more.
I am now using Google Apps (for Email) and Heroku as web server. I am using Google Apps 301 Permanent Redirect feature to redirect the naked domain to WWW.your_domain.com
You can find the step-by-step instructions here
https://stackoverflow.com/a/20115583/1440255
You are not allowed to have a CNAME record for the domain, as the CNAME is an aliasing feature that covers all data types (regardless of whether the client looks for MX, NS or SOA records). CNAMEs also always refer to a new name, not an ip-address, so there are actually two errors in the single line
# IN CNAME 88.198.38.XXX
Changing that CNAME to an A record should make it work, provided the ip-address you use is the correct one for your Heroku app.
The only correct way in DNS to make a simple domain.com name work in the browser, is to point the domain to an IP-adress with an A record.

heroku and domain name conventions

(tried on Server fault, so going to try here)
Hi I recently setup my octopress blog at http://davidmjohnson.me. This domain works fine, but when I try http://www.davidmjohnson.me I get a "heroku no app found." Why is the www not working. Would really appreciate an explanation. I bought my domain name at dnsimple. Do I need to add a redirect from "http://www.dav..." to just "http://dav..." ?
Thanks
I'm guessing you need to configure this domain (and any subdomain) in the heroku CLI application (equiv. of ssh-ing into the machine and changing the nginx/apache location/virtualhost configuration).
I see they have an entry about this in their reference:
https://devcenter.heroku.com/articles/custom-domains
To elaborate a bit from the documentation:
Subdomains ( www.mydomain.com)
For each subdomain you want to setup configure your DNS provider using
a CNAME record pointing the subdomain to the applicable Heroku
hostname.
If the app is on Cedar, then CNAME the subdomain to myapp.herokuapp.com
If Bamboo, then myapp.heroku.com
In DNSimple a CNAME
record entry for a Cedar app would look like:
You can confirm that your DNS is configured correctly with the host
command:
$ host www.example.com
www.example.com is an alias for myapp.herokuapp.com.
myapp.herokuapp.com is an alias for ar.herokuapp.com.
ar.herokuapp.com is an alias for argon-stack-1879049447.us-east-1.elb.amazonaws.com.
argon-stack-1879049447.us-east-1.elb.amazonaws.com has address 107.20.157.144
...
Actually, it should really be the other way around. It is much better practice to point CNAMEs at Heroku apps, since Heroku apps have no real "static" IP. Since naked domains need an A-record, pointing a naked domain to a Heroku app makes everything much less stable. So the best practice is to forward your naked domain to a "www" subdomain, and then point the "www" CNAME to your Heroku app.
Heroku goes into detail about this here.

Resources