更改A记录和CNAME记录


11

目前,我正在LAMP为着陆页页面,Web应用程序和API使用配置。现在,我想将这些内容分散到多个虚拟服务器(VS)中。我不确定网络设置,在弄乱我所有的DNS配置之前,我想了解一下是否要使我的配置崩溃。

登陆页面托管在second level domain(例如myurl.com),Web应用托管在较低级别的域app.myurl.com,而api 托管在api.myurl.com。我也有一个预览域:preview.myurl.com,用于测试。

因为一切都在同一VS主持,我现在也有四种不同的文件夹(landingapiwebapppreview),充当为每个子域的“虚拟主机”。

我的DNS配置如下所示:

myurl.com.  A   300 123.123.123.123
www.myurl.com.  CNAME   300 myurl.com.
api.myurl.com.  CNAME   300 myurl.com.
app.myurl.com.  CNAME   300 myurl.com.
preview.myurl.com.  CNAME   300 myurl.com.

首先,我想将每个CNAME条目的数据更改为当前VS的实际IP。这样看起来像这样:

myurl.com.  A   300 123.123.123.123
www.myurl.com.  CNAME   300 myurl.com.
api.myurl.com.  CNAME   300 123.123.123.123
app.myurl.com.  CNAME   300 123.123.123.123
preview.myurl.com.  CNAME   300 123.123.123.123

然后的想法是将每个子域指向正确的VS。最初,所有较低级别的域(除外www.)仍将指向当前VS,而着陆页的第二级域(的A记录myurl.com.)将需要指向IP新VS的新域。

问题:

  1. 这些变化将影响在当前的Apache服务器分发流量来每个子文件夹的方式(即landingapiwebapppreview)?如果是这样,即使所有IP地址都相同?
  2. 为了进行测试,我可以先更改其data值,preview.myurl.com.而不冒损害其余部分的风险吗?
  3. 一旦所有较低级域(例如api.myurl.com)点到虚拟机的IP,我可以点A的值myurl.com.到一个不同的IP而不损害其他较低级域(apiapppreview)?

2
在没有从问题中获得更多信息的情况下,您不应使用带有ip地址的CNAME记录,而应使用A记录:app.myurl.com. A 300 10.123.123.123
HBruijn

我将进一步说CNAME记录必须指向域名,并且不能是IP地址。如果DNS管理系统允许您将IP地址作为CNAME记录的目标,我会感到惊讶。
Dre

2
@Dre您可以在CNAME RR中放置看起来像IP地址的数字,但它们将被解释为不合格的域名。
迈克尔·汉普顿

Answers:


12

如评论中所述,您将需要使用A记录而不是CNAME记录。CNAME记录将无法指向IP地址。

使每个站点正常工作的关键是为Apache配置中的每个虚拟服务器正确指定ServerName。


谢谢,那很有帮助。我唯一不确定的是有关ServerName的内容。正常工作应该看起来像什么?我的疑问是,DNS解析为特定VS的方式是否会以某种方式影响ServerName?
唐·

1
如果我理解正确,是的。Servername是Apache知道向哪个VS发送流量的方式。假设您在DNS中设置了所有A记录,所有记录均指向123.123.123.123地址。当您浏览到myurl.com时,您的请求将发送到123.123.123.123。Apache收到了请求,并意识到它在该IP上有一些网站,因此Apache会仔细查看您发送的请求,并意识到您的浏览器正在寻找myurl.com。Apache将寻找该URL来匹配每个VS的Servername值之一。
Dre

11

使用A记录指向子域

myurl.com.  A   300 123.123.123.123
api.myurl.com.  A   300 123.123.123.123
app.myurl.com.  A   300 123.123.123.123
preview.myurl.com.  A   300 123.123.123.123
www.myurl.com.  CNAME   300 myurl.com.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.