目前,我正在LAMP
为我的登录页面、Web 应用程序和 API 使用一个配置。现在我想将这些东西拆分到多个虚拟服务器 (VS)。我不确定网络设置,在弄乱我的所有 DNS 配置之前,我想了解我的配置是否会崩溃。
登陆页面托管在second level domain
(例如myurl.com
),Web 应用程序托管在较低级别的域app.myurl.com
,API 托管在api.myurl.com
。我还有一个预览域:preview.myurl.com
,用于测试。
由于所有内容都托管在同一个 VS 上,因此我目前也有四个不同的文件夹(、、、)landing
,它们充当每个子域的“虚拟主机”。api
webapp
preview
我的 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。
问题:
landing
这些更改是否会影响当前 Apache 服务器将流量分配到每个子文件夹(即、api
、webapp
、 )的方式preview
?如果会,即使所有IP
地址都保持不变,也会这样吗?- 为了进行测试,我可以先只改变值
data
而不preview.myurl.com.
冒损害其余部分的风险吗? - 一旦所有较低级别的域(例如 api.myurl.com)都指向 VM 的 IP,我是否可以将
A
的值指向不同的 IP ,myurl.com.
而不会损害其他较低级别的域(api
、、)?app
preview
答案1
正如评论中提到的,您需要使用 A 记录而不是 CNAME 记录。CNAME 记录将无法指向 IP 地址。
使每个站点正常运行的关键是在 Apache 配置中为每个虚拟服务器正确指定 ServerName。
答案2
使用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.