使用不同的物理服务器管理具有多个子域的同一域名

使用不同的物理服务器管理具有多个子域的同一域名

我有一个主临时域

www.product.com

对于每个客户端,我需要通过虚拟主机将单独的子域映射到具有相同端口(80)的同一服务器。

www.client1.product.com
www.client2.product.com
www.clientn.product.com

我的问题是我的服务器达到了最大负载,所以我无法添加其他客户端。

我当前的设置

www.product.com 仅使用 1 个 IP 地址与服务器 1 进行映射

服务器 1 使用

www.client1.product.com
www.client2.product.com
.
.
.
www.client20.product.com

这是我的实际问题

现在server1已经达到物理资源的最大利用率

所以我要从我的数据中心购买另一台额外的服务器

因此在 server2 中我需要继续从子域

www.client21.product.com
.
.
.
www.clientn.product.com 

1)可能吗?

2)我的问题有解决办法吗?如果有,请说明一下。

笔记:

我是网络托管方面的新手,也是专用服务器管理方面的新手。

更新:

有关我的应用程序架构的更多信息

www.client1.product.com uses separate unique rails instance with separate mysql db 
www.client2.product.com uses separate unique rails instance with separate mysql db 

为了更清楚地了解我的问题,请访问

https://stackoverflow.com/questions/12210495/phusion-passenger-nginx-virtual-host-sub-domain-configuration-for-ruby-on-rail

答案1

据我了解,您希望在 www.product.com 上托管多个子域,这些子域也托管在多个物理机箱上。您的第一台服务器因添加 clinet1-20 而资源耗尽。

您应该将第二个盒子配置得与第一个盒子完全相同,即操作系统、Web 服务器、数据库服务器等。

然后在 Web 服务器配置中,只需添加与第一个框相同的虚拟主机。

之后,您要做的就是更改 www.product.com 的 DNS

您必须为添加的子域添加 A 记录,例如,如果您在第二台服务器上添加了 client22.product.com,则输入代码,添加数据库,然后添加一条 A 记录作为 client22,并输入第二台服务器的 IP 地址。等待几分钟,DNS 才会传播。通过在 client22.product.com 上进行 ping 测试来验证这一点,看看它是否解析到您使用 A 记录添加的 IP。

我希望它有帮助。

答案2

我可以想到三种方法来解决你的问题:

  • 使用 DNS 将客户端 1-20 解析为您的第一台服务器,将 21-n 解析为您的第二台服务器,或者使用循环,即让两台服务器提供相同的内容,但让 DNS 分散负载(在我看来,有点笨拙,但可能是最容易实现的)
  • 使用 Apache 的代理功能来平衡负载(mod_proxy_balancer)(可能是更优雅的解决方案,但需要更多的技巧才能做到正确)
  • 购买硬件来进行负载平衡(当然需要额外付费)

答案3

在解析域名的服务器上,为什么不创建 A 寄存器并使其指向其他服务器?我做了类似的事情,创建了一个 A 寄存器指向其他服务器,所有流量都自动重定向到它,对你来说也应该有效。

相关内容