我们的MySQL数据库应该与我们的Apache服务器分开吗?

Wil*_*lll 9 mysql database architecture

我公司目前在VPS服务器上运行一个基于LAMP的网站,因此数据库和Web服务器实际上是在同一个盒子上.

我们正在开发一个新站点,我们计划在同一台服务器上托管(即我们将在服务器A上为foo.com和bar.com提供所有内容).

但是,我们预计流量会增加,并且热衷于提高弹性和可扩展性.我建议使用带有单独数据库服务器的负载均衡架构,即:

                                Internet
                                   ¦
                              Load Balancer
                               /        \
                       ¦ Server A ¦   ¦ Server B ¦
                               \        /
                              ¦ MySQL DB ¦
Run Code Online (Sandbox Code Playgroud)

这是一种明智的做法吗?还是过度设计?将所有内容保存在单个服务器上对我来说感觉很危险.虽然在这个阶段我们可能不需要负载平衡,但是将数据库从Web服务器拆分仍然是明智的吗?

我已经看到了几个与此类似的问题,但我不确定它们是否适用于Apache/MySQL环境.当我在Windows服务器环境中工作时,他们总是有单独的数据库服务器.

rya*_*234 8

是的,拆分数据库和Web服务器是个好主意.当然.

其中一个主要原因是每种技术(Web服务器,数据库)都将竞争物理资源.例如,假设您还将缓存放在单个服务器上.现在你有一个Web服务器,缓存和一个所有竞争RAM的数据库.只有这么多去.

此外,不同的技术将以不同的速度扩展.您可能只需要群集中的2-3台数据库计算机和10台Web服务器.他们有不同的需求,并会有不同的发展.现在以增长为目标咬紧牙关并不是一个坏主意.

至于对单个MySQL服务器感到紧张......我认为必须设置一个工作来每晚备份整个数据库.

此外,我已经看到生产机器将数据复制到另一个充当热备份的MySQL盒子.设置并不难,但确实耗费了另一台机器.


sym*_*ean 5

我不同意ryan1234。

在DBMS和Web服务器之间,资源使用的模式应该完全不同。

另外,如果您打算增加计算机数量,那么不抓住机会使站点对故障具有更大的恢复能力是很愚蠢的。

如果是我,我很可能会选择两个都运行Web服务器,都运行mysql的服务器,它们都在数据库上提供相同的虚拟主机和主-主异步复制(具有将流量定向到数据库/单个节点的功能)。 Web服务器的节点。

是的,如果您需要添加比此多得多的硬件来管理容量,那么将DBMS分成单独的层是一个好主意。但您似乎还有很长的路要走。