For each website I have, I noticed that having just this A DNS record:
*.example.com 3600 A 0 192.1.2.3
will make http://example.com unavailable and having just this A DNS record:
example.com 3600 A 0 192.1.2.3
will make http://www.example.com unavailable.
Question: is it mandatory to have two A DNS records to support www and non-www
*.example.com 3600 A 0 192.1.2.3
example.com 3600 A 0 192.1.2.3
or is there a way to define both in one A DNS record?
PS: If it's mandatory to have two records, would you use:
www.example.com 3600 A 0 192.1.2.3
example.com 3600 A 0 192.1.2.3
or would you do it this way:
www.example.com 3600 CNAME example.com
example.com 3600 A 0 192.1.2.3
?
Short answer: Yes.
Longer: I would suggest you adding exactly
www.example.com
and not*.example.com
unless you don't want to ever use any sub-domain likejohn.example.com
andjane.example.com
, etc....Also, do not forget to configure your apache/nginx (which ever you use) to accept connections for both domain names.
To answer the second part of your question: For names I know will be served by the same machine for the foreseeable future I personally prefer defining one A record and then using CNAMEs as aliases for that record. That way I can change an address in one place and have everything move with it.
A typical example: A load balancer/reverse proxy might get an A record with the name
lbtest.example.com
to point at its IP address.Each name served by that specific machine (
example.com
,www.example.com
,foo.example.com
) would get a CNAME pointing atlbtest.example.com
.