在服务器场中同步多个WordPress Web服务器

我的公司很快就会build立一个博客,我正在计划build立两个Web服务器来承载WordPress的冗余。 通常情况下,当我们向农场的一个地点发布信息时,我们会推到一边,testing然后再发布到另一边。 对于WordPress的更新,我们可以很容易地做到这一点。 但问题变成如何处理wp-content文件夹。 由于人们将发布post,并上传graphics,因此无论用户将哪个服务器上传到服务器,都需要将其同步到服务器场中的其他服务器。

我可以设置DFS来复制这些文件,但是这些接缝像过度杀毒。

我可以设置robocopy每15分钟运行一次,然后告诉所有人,确保post至less在15分钟内发布,以便文件有时间进行复制。

那里有更好的解决scheme吗? 也许是一个wordpress插件,所以当graphics上传到post他们自动复制到农场的其他服务器?

我在Windows 2008上运行Wordpress,因此Linux解决scheme将无济于事。

过去,我们使用超级灵活的文件同步器。 它工作得很好,并有许多选项来控制同步。

我不是一个有IIS的巫师,但是希望这个技巧能够翻译出来。

我假设有一个共享的主机名在两台服务器之间进行负载均衡,并且每个服务器还有一个可公开访问的名称。

你想要的是两个服务器之一的条件redirect结合某种文件同步。 如果URI以/ wp-content开头并且文件存在,则在本地提供。 否则redirect到其他服务器。 服务器Aredirect到B,反之亦然。

这应该为观众带来无缝的体验 – 他们只会在上传和同步运行之间的窗口中获得临时redirect。 根据带宽或冗余问题,您的同步时间间隔可能会比15分钟长得多,因为在post上升的时候,网站应该可以正常呈现。

在nginx中,我可以这样做:

location ~ ^/wp-content { if( -f $request_filename ) { expires max; break; } rewrite ^/(.+)$ http://otherserver.com/$1 last; } 

nginx可用于Windows,但我怀疑你想切换networking服务器软件来做到这一点。 希望这个想法可以转换成IIS或者你使用的任何软件。

我把这作为一个单独的答案,因为这是一个不同的方法:

把图像放在云存储(Amazon S3或类似的)中,然后让你的用户使用到云的链接。 带宽成本可能会高一些,并且可能会有用户首先上传到云中的培训问题,但是它消除了对本地文件系统或跨服务器检查的需要。

无论您部署的服务器的数量如何,它也应该扩展。

是否具有单个networking文件共享(无DFS)上的内容选项?

如何一致 ?

你可以使用rsync来做到这一点。 否则,如果你有源代码控制下的文件,你可以使用像Capistrano这样的东西能够把东西推出到不同的机器(甚至如果需要的话还可以回滚)。

当你有多台机器时,能够部署和回滚是非常有用的。

如何使用以下开关进行robocopy:1.检测更改并运行同步 – / MON:n :: MONitor source; 当看到多于n个变化时再次运行。 / MOT:m :: MOnitor source; 再次运行时间,如果改变。

  1. 带宽节省选项 – / RH:hhmm-hhmm ::运行时间 – 可能启动新副本的时间。 / PF ::在每个文件(不是每个传递)的基础上检查运行时间。

新来的,你最后用什么来解决这个问题?