我正在尝试使用多台机器为网站创建托管服务。然后,当用户创建网站时,我会给他一个随机标识符(例如:“a4589”、“pu8we”等),用作子域。
然后,因为我将拥有多个物理服务器,所以我想知道在 DNS 中为每个子域创建一条记录。大致类似于这些记录:
a4589 A 192.168.0.23
pu8we A 192.168.0.23
az336 A 192.168.0.25
z012p CNAME ec2-89-65-36.amazon.com
但它会创建很多条目(数千个条目),我不确定这种解决方案的弹性。主要优点是能够以一定的透明度从一台服务器切换到另一台服务器。
您有其他想法吗?或者您认为这个解决方案是正确的吗?在最终机器(Apache 服务器)上使用虚拟主机当然是解决方案的最后一部分(我根据对这个问题的评论给出了这个精度)。
答案1
没有单一的解决方案。一个区域中可以有大量条目 - 您可能需要查看数据库驱动的名称服务器(如 powerdns),以便更轻松地管理域(即,您只需使用 SQL 命令或前端即可操作它)。
另一种方法是更改命名约定。您可以将其拆分为(至少)两个部分,而不是使用单个子域,例如 randombit.group.mydomain.com,然后使用通配符,这样您就可以拥有 *.group1.mydomain.com A xxxy 和 *.group2.mydomain.com A xxxz
注意运行低 ttls 以减少转换期间的停机时间,并观察/避免 cname 的格式 - 它们可能无法按您想象的那样工作。
根据您的设计 - 如果所有服务器都镜像相同的站点,并且这样做是出于冗余/负载原因,您可能需要查看更简单的 DNS 解决方案并使用负载平衡技术。