我的公司很快将建立一个博客,我正计划建立两个网络服务器来托管 wordpress 网站以实现冗余。通常,当我们发布到农场中的站点时,我们会推送到一侧,进行测试,然后再发布到另一侧。对于 wordpress 更新,我们可以很容易地做到这一点。然而,问题变成了如何处理 wp-content 文件夹。由于人们将发布帖子并上传图形,因此无论用户将它们上传到哪个服务器,这些都需要同步到场中的其他服务器。
我可以设置 DFS 来复制文件,但这看起来有点矫枉过正。
我可以将 robocopy 设置为每 15 分钟运行一次,然后告诉每个帖子确保将帖子安排在至少 15 分钟内发布,以便文件有时间复制。
有没有更好的解决方案?也许是一个 wordpress 插件,这样当图形上传到帖子时,它们会自动复制到场中的其他服务器?
我在 Windows 2008 上运行 Wordpress,所以 Linux 解决方案不会有太大帮助。
我不是 IIS 的向导,但希望该技术能够转化。
我假设在两台服务器之间有一个负载平衡的共享主机名,并且每个服务器还有一个可公开访问的名称。
您想要的是在两台服务器之一上的条件重定向以及某种文件同步。如果 URI 以 /wp-content 开头并且文件存在,则在本地提供它。否则重定向到其他服务器。服务器 A 重定向到 B,反之亦然。
这应该会为观众带来无缝的体验——他们只会在帖子启动和同步运行之间的窗口中获得图像的临时重定向。根据带宽或冗余问题,您的同步间隔可能会远超过 15 分钟,因为该站点应该在帖子发布的那一刻正确呈现。
在 nginx 中,我会使用这样的块来执行此操作:
nginx 可用于 Windows,但我怀疑您是否想切换 Web 服务器软件来执行此操作。希望这个想法可以转换为 IIS 或您正在使用的任何软件。
我把它作为一个单独的答案,因为它是一种不同的方法:
将图像放在云存储(Amazon S3 或类似的)中,然后让您的用户使用指向云的链接怎么样。带宽成本可能会更高一些,并且可能存在让用户首先上传到云的培训问题,但它消除了对本地文件系统或跨服务器检查的需要。
无论您部署的服务器数量如何,它都应该可以扩展。
我们过去曾使用过超级灵活的文件同步器来处理这样的事情。它工作得非常好,并且有许多选项来控制同步。
是否可以选择将内容放在单个网络文件共享(无 DFS)上?
同音呢?
您可以为此使用 rsync。否则,如果您的文件处于源代码控制之下,您可以使用 Capistrano 之类的工具来将内容推出到不同的机器(必要时甚至回滚)。
当您拥有多台机器时,能够部署和回滚非常有用。
robocopy 使用以下开关怎么样: 1. 检测更改并运行同步 - /MON:n :: MOnitor 源;当看到超过 n 个更改时再次运行。/MOT:m ::监控源;在 m 分钟内再次运行时间,如果更改。
neways,你最后用什么来解决这个问题?