使用robocopy进行IIS复制的WordPress

我们在4个IIS服务器上build立一个wordpress环境。 我们正在考虑使用触发robocopy脚本的计划任务来每5分钟复制一次wordpress目录。

对这种做法有什么看法? 有没有人曾经使用过这个或类似的?

有4个前端服务器共享相同的文件在同一时间,每个都能够写,而不使用某种DFS或专用于目录同步的第三方程序将是一个夜晚的母马。

用azure色,你可以看到3件事情。

  1. 共享存储,可能会有一些与获得您自己的专用存储相关的成本,但我不确定configuration,但Azure确实提供了这一点。 这将确保所有文件在写入时都可用于每台服务器。

  2. Azure DFS,DFS是一个基于Windows的目录同步工具,工作得相当好,也不确定成本,但configuration可能会更容易一些。 DFS确实是asynchronous工作,所以有一点延迟,但不是很less。

  3. (我将解释这将如何完成,然后再也不谈论它,因为这是一个可怕的想法,将失败。)创build一个脚本,将首先比较所有四个服务器上的数据,然后复制差分数据。 您需要将每个目录共享到运行该脚本的一台服务器,设置权限以便服务器可以读取和写入,然后排除故障排除和故障排除。

如果你的工作取决于这个工作,我会build议你远离选项3。

这就是说,你不是想花钱,按照下面的步骤。

  1. 看一下名为“免费文件同步”的程序。 免费版有一些非常好的function我相信有一个付费版本,但我不知道你得到的增强。 在尝试实现类似于您所期望的操作并懒得设置DFS的情况下,我已经在很多开发环境中使用了它。

  2. 只允许一个服务器可写,这可以很容易地通过configuration每个服务器上的URI来说明:如果创build文章转到ServerA,或者在你的web.config中重写URL,或者是WordPress使用php:

    header('Location: http : //myhost.com/mypage.php ');

每个人都会花一点点编码和PHP,IIS的知识。

  1. ServerA是作者服务器(只有可写服务器)的真正有趣的部分,我们如何将stream量引导到ServerB,ServerC和ServerD以便在没有负载均衡器的情况下进行读取?

简短的回答你不能,这不完全正确,我有一个客户曾坚持不使用负载保镖,他能够通过一系列的PowerShell脚本来移动连接从一台服务器到另一台基于工作人员在每个盒子或类似的东西进程。 无论哪种方式都很难做,不值得浪费时间和精力。

查看是否无法在服务器上configurationnetworking负载平衡,它将需要一个额外的IP,但只有一个DNS更改,并且stream量可以分布在3台服务器上进行读取。

祝你好运!

感谢所有的build议人。

我们的解决scheme是使用名为“恢复”的工具使用对等同步方法。

Resilio允许我们在对等同步群集中configuration多台计算机(在这种情况下为IIS前端)。 从集群中的每台计算机中select一个文件夹用于同步过程。

弹性服务(在后台运行的Windows服务)会监视这些文件夹的任何更改,如果对前端的任何指定文件夹进行了更改,则弹性会将更改推送到其他服务器。

我希望这能帮助未来面临类似问题的其他人。

我不认为这是一个好方法。 由于5分钟的窗口,有时候会请求资源,但select的服务器将不可用。 对于大部分静态网站来说,这种情况的发生频率要比繁忙的网站频繁更换时要less得多 更高的频率或者使用像Bittorrent Sync这样的不同步同步技术可以稍微改善这一点,但并不能消除这个问题。

把你的wp-content或wp-content / uploads文件夹放到共享驱动器上将是一个更好的解决scheme。

更新看看这篇文章的关于页面caching的想法, 这一个用于CDN。 这是关于Nginx,所以你需要解决IIS的问题,但它背后的理论是有效的任何Web服务器。