2013-08-01 58 views
7

我的公司目前在VPS服务器上运行一个基于LAMP的网站,因此DB和Web服务器实际上位于同一个框中。我们的MySQL DB应该与我们的Apache服务器分开吗?

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

但是,我们预计流量将会增加,并且渴望提高弹性和可扩展性。我提出了一个负载均衡的架构,它有一个单独的数据库服务器,即:

       Internet 
            ¦ 
           Load Balancer 
          /  \ 
         ¦ Server A ¦ ¦ Server B ¦ 
           \  /
           ¦ MySQL DB ¦ 

这是一个明智的方法吗?还是过度设计?把所有东西放在一台服务器上对我来说感觉很危险。虽然在这个阶段我们可能不需要负载均衡,但从Web服务器分割数据库还是明智的吗?

我见过几个类似的问题,但我不确定它们是否适用于Apache/MySQL环境。当我在Windows服务器环境中工作时,他们总是有独立的数据库服务器。

回答

7

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

其中一个主要原因是每种技术(网络服务器,数据库)都会争夺物理资源。例如,假设您也将缓存放在单台服务器上。现在你有一个Web服务器,缓存和一个数据库都在竞争RAM。只有这么多才能走开。

再加上不同的技术将以不同的速度进行缩放。您可能只需要2-3个数据库机器和10个Web服务器。他们有不同的需求,并会有不同的增长。现在就着眼于发展,不是一个坏主意。

只要对一台MySQL服务器感到紧张...我认为强制设置一个作业来备份整个数据库每晚。

另外我还看到生产机器将数据复制到另一个充当热备份的MySQL盒子。设置起来并不难,但确实花费了另一台机器。

+0

我们在一个有很多非常重要的用户提交数据的站点上使用热备份,我们不仅拥有最新的复制数据库,还可以运行半小时备份而无需影响主要网站的表演ANCE。 – TheJosh

4

我不同意ryan1234。

数据库管理系统和网络服务器之间的资源使用模式应该是完全不同的。另外,如果您打算增加机器的数量,那么就不会利用这个机会让网站更加适应中断。

如果是我,我最有可能去2个运行同时运行mysql的web服务器的服务器,这两个服务器都在数据库上提供相同的虚拟主机和master-master异步复制(具有将流量引导到单个节点数据库/网络服务器的单个节点

是的,如果您需要添加更多的硬件来管理容量,那么将DBMS拆分为单独的层是个好主意,但是您似乎很长

相关问题