扩展架构:分离 Apache 和 MySQL 服务器,还是将它们放在一起并添加资源/节点?

扩展架构:分离 Apache 和 MySQL 服务器,还是将它们放在一起并添加资源/节点?

可能会为多个独立的 WordPress 网站提供服务,并试图确定最佳的通用方法。目前,我正在考虑两个 VPS,一个使用 Apache/PHP/FastCGI,另一个运行 MySQL,两者之间有一个私有接口。这允许我在必要时独立调整和扩展 Web 服务器和数据库服务器。另一方面,它引入了一些额外的复杂性,需要更繁重的 MySQL 进程,在数据库上造成更多瓶颈的可能性,并且可能暴露更多的攻击面。

另一种方法是将所有服务放在一个更大的 VPS 上,并根据需要简单地添加资源或额外的独立节点。

有没有人对这两种方法的优缺点有具体的经验?还有其他建议吗?推荐的资源?

答案1

在扩展方面,出于安全和性能方面的考虑,将角色彼此分开始终是最佳做法。分离 Web 层和 DB 层通常是扩展的第一步。这样做是为了针对每个主机执行的工作负载进行专门调整。

还有一件事需要考虑,当角色被分配到不同的主机时,操作系统缓存将比将两个角色组合在一起时填充更多相关数据。由于 I/O 几乎总是任何 Web 架构中的瓶颈,因此任何时候都可以利用额外的缓存都是一个优势。

答案2

分离 apache 和 mysql 已经完成(最相关),因为它是一个干净的分离层(mysql 连接设置),用于打开新的资源罐。如果我们谈论的是 VPS 的小部分,你显然不会得到一台全新的机器,所以它在那里用处不大。一定要确保保留该分离层(一个可以轻松修改/重定向的主机名字符串,没有“localhost”),以便稍后分离。

如果您正在自动扩展并可能占用整个物理资源,那么请使用单独的机器。请验证两者之间的网络延迟,如果您的 apache 和 mysql 相差超过几毫秒(即不同的数据中心),情况可能会很糟糕。最好提前与您的提供商讨论这个问题,并获得类似于专用网络的东西。

您的 VPS 提供商也可能为较大的套餐分配不成比例的资源/服务。这可能是将所有东西放在一起的原因。

相关内容