如何复制/ var / www / html /两个单独的机器之间有独立的硬盘存储运行Apache Web服务器。 我打算在这两个Apache服务器之间设置负载均衡,并将Nginxconfiguration为这两个Apache服务器的前端,这些文件应该从服务器1同步到服务器2,反之亦然
我想到了多种select/解决scheme:
NFS :
networking文件系统(NFS)是Sun公司最初于1984年开发的一种分布式文件系统协议,它允许客户端计算机上的用户通过计算机networking访问文件,就像访问本地存储一样。
DRBD aka分布式复制块设备 :
DRBD®软件是Linux平台的分布式复制存储系统。 它被实现为几个用户空间pipe理应用程序和一些shell脚本,通常在高可用性(HA)计算机集群上使用。
csync2 :
Csync2是一个群集同步工具。 它可以用来保持群集中多个主机上的文件同步。 Csync2可以处理复杂的设置,而不仅仅是2台主机,处理文件删除,并可以检测到冲突。
还有其他的select,只要把它作为一个起点。
将代码和内容pipe理,升级并部署到所有服务器是build立双向同步的更好的解决scheme。 考虑将服务器资产部署到池中的所有服务器上,而不是在一台服务器上更新,并指望同步/复制或pipe理共享文件系统。
这使您可以将您的内容/代码分开pipe理,以便您可以查看/pipe理/回滚更改。 不经意的编辑或删除也不会伤害你。
这也可以让你启动额外的节点,并通过可重复的过程帮助部署。
最简单的迭代就是让你的Web服务器周期性地对你的repo的一个特定分支进行git pull 。
在这个过程中,请将git pull临时位置,并将rsync放到您的httphome目录中。 这将允许你排除像repo的.git目录和README文件。
例如:
rsync -art --delete --delete-excluded --exclude='.git/' --exclude='README*' #{repo_path}/ #{site_path}
至于使用NGINX前面的Apache, 为什么 ? 你希望从中获得什么? 他们都是可以做反向代理和运行应用程序的Web服务器。 除非你有一个很好的理由,否则select一个networking服务器,并让负载均衡负载。