我有一个主临时域
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
为了更清楚地了解我的问题,请访问
答案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 寄存器指向其他服务器,所有流量都自动重定向到它,对你来说也应该有效。