我的情况是这样的,我的网站“A”位于内联网防火墙后面,内联网以外的人无法访问。我打算让外包开发人员开发“A”,但他无法访问它,我也无法让他访问内联网。所以我的计划是建立一个网站“B”,与“A”的文件和数据库同步,“B”当然是全世界都可以访问的。我的目的是“B”上的任何更改都会立即反映在“A”上,同样,“A”上的任何更改也会立即反映在“B”上(Dropbox 式同步关系)。
“A”和“B”都在 Linux 服务器上运行,我在“A”上有 root 访问权限。我假设“A”必须始终启动同步,因为“B”无法从外部访问“A”。
这可能吗?如果可以,我该如何实现?
答案1
下载 OwnCloud (http://owncloud.org/) 并将其托管在 B 上。在 A 中安装客户端并设置文件同步到相关文件夹 (例如 /var/www/ )。OwnCloud 将获取最后编辑时间并将两端更新为最新文件版本 (为防止错误,系统时间差异的容忍度为 2 秒)。
OwnCloud 的工作方式与 DropBox 非常相似,但您可以完全控制和保护隐私。您还可以同步本地目录中的任何文件夹。
我个人使用它来同步远程服务器、家庭服务器和办公室机器(位于防火墙后面)上的文件夹。它甚至有一个不错的 Web UI,允许文本编辑,还有一个 Android 应用程序。最重要的是,限制由您决定设置。
答案2
有一个名为“unison”的工具可以实现这一点;它需要两台机器上都有账户,并且在它们之间有 SSH 登录。