使用 rsync 复制完整的 VPS

使用 rsync 复制完整的 VPS

我正在认真考虑如何复制我的 VPS。根据建议,我使用 rsync,现在我想用它来复制托管在我 VPS 上的网站。

情况是这样的;我有一个按月付费的 directadmin 许可证的 VPS,我想将此 VPS 的所有网站数据复制到我的新 VPS 上,该 VPS 具有终身许可证。我在新 VPS 上安装了 CentOS7,包括所有防火墙内容。因此它应该只复制我现有用户的数据库等。

我绝对不想要完整 VPS 的 1:1 副本,第一个上有一些奇怪的软件,我想摆脱它们。

在我传输完所有网站数据后,我想确保两个 VPS 具有相同的数据,这样我就可以分割传入的流量。

这里有很多问题 :-) - 所有网站数据(包括数据库)的正确目录是什么? - 如何在两个 VPS 之间设置同步工作流程?

答案1

复制文件和复制数据库是两件不同的事情。

您可以随时复制您的网站文件而无需关闭任何服务。但这对 MySQL 来说不太适用。

为了 rsync MySQL,您首先需要停止两台服务器(源服务器和目标服务器)上的服务。

据我所知,您需要对 MySQL 服务器配置做出选择。要么设置多主 MySQL 集群,要么使用单个 MySQL 节点(我建议使用后者,即单个 MySQL 节点,因为它更易于管理)。

MySQL 服务器可以托管在您的一个 VPS 上,也可以托管在一个专用 VPS 上。

为了配置您的 Web 应用以与 MySQL 通信,只需将“localhost”(或 127.0.0.1,如果是这种情况)更改为 MySQL 服务器 IP(可以是本地或公共 IP)。您还需要确保允许服务器 IP/主机名接受 MySQL 上的传入查询。


关于网站文件;rsync 非常适合将您的网站从一台服务器克隆到另一台服务器。但如果您计划将其用作同步解决方案,它将消耗太多 IO。


您可以做的是(最简单(1)和更复杂(2)的设计):

1a) 在你的两个节点之一上创建 NFS(可能是你的“主”节点)
1b) 在第二台服务器上挂载动态目录(例如,对于 wordPress,这可能是你的上传目录)
1c) 对于任何更新,你都需要找出一个解决方案,例如 rsync,或者更好的是,一个代码仓库,例如 git

2a) 设置网络文件系统(例如 GlusterFS 或 Ceph),它将使用您的 Web 应用程序文档根目录作为挂载点。2b
) 在两台服务器上挂载您的目录

还有一个没有被问到但你一定要涵盖的内容是 SSL 配置;
通常,负载均衡器也会执行 SSL 卸载,并且负载均衡器和从属服务器之间的流量是未加密的。因此,你可能想要向从属服务器声明,来自负载均衡器的流量应被解释为“安全”并在请求时使用 SSL(因此,即使在非 https 端口上处理,你的网站也会返回 https:// URL)。

话虽如此,这不是一个简单的设置和配置,因为您需要与您的客户一起涵盖所有基础(即,如果他们更改了 PHP 配置,您需要确保新的配置也将在第二个节点上被考虑在内)。

相关内容