![我该如何扩展我当前的设置?](https://linux22.com/image/509117/%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E6%89%A9%E5%B1%95%E6%88%91%E5%BD%93%E5%89%8D%E7%9A%84%E8%AE%BE%E7%BD%AE%EF%BC%9F.png)
我目前在一台机器上运行着一个 HTTP 服务器(如果有帮助的话,它运行的是 Ubuntu 服务器版)。过去这已经足够了,但随着流量的增长,我开始需要更多的电力和存储空间。我有第二台机器,并在其上安装了 Ubuntu 服务器版。如何让这两台机器同步运行?在专业设置中通常是如何做到这一点的?
谢谢,非常感谢您的回答。
答案1
如果您的设置中不涉及任何写入操作,则只需使用循环 DNS 设置即可。如果不是这种情况,拥有两台服务器的第一选择可能是使用并调整 1 台作为 Web 服务器,1 台作为数据库服务器。
答案2
首先你应该将它们连接到一些快速的网络连接。
- 您可以运行一些缓存反向代理,例如
nginx
。 - 您可以将 MySQL 移至第二台主机。您也可以尝试进行分布式部署。
对静态数据的请求应该由一台机器或两台机器上(以循环方式)的更简单的东西(如 nginx/lighthttpd/...)来提供服务。
只读复杂请求应被适当缓存。缓存可能在其他主机上运行。
复杂的写入请求可以以某种集中方式完成(仅在一台机器上;角色分离(Web 服务器/数据库))。或者,您可以考虑使用可以处理所有请求的多个节点来构建可扩展的系统,但这会变得更加复杂,如果将来会有进一步的大规模增长,则应考虑这一点。
如果系统主要是只读的(比如可供下载的电影合集),您可以设置 2 台主机负责部分内容。或者,如果数据保护以防止崩溃更重要,您可以设置两台相同的主机,使用相同的数据,并在路由器上循环发送对它们的请求。
答案3
在做任何事情之前,您需要更好地了解您的负载在哪里以及瓶颈是什么。使用更快的硬件或更多的服务器来解决问题非常容易,但您可能会发现一些特定的软件更改可能会产生您想要的结果。
首先,您可以使用一些非常基本的命令行工具(例如 top 和 sysstat 包)来了解正在发生的事情的基本概念。 IE您首先需要确定速度变慢是由于 CPU、网络、I/O 还是配置不当的软件造成的。
网络上有大量关于使用这些工具来识别问题的信息(Google 是你的好朋友)。这不仅有助于你更好地了解正在发生的事情,还意味着如果你引入新硬件,它实际上有助于解决问题。