[英]Need to upload a single file across 2 load balanced servers
目前,我公司有3个服务器设置。 负载均衡器后面有2个Web框,负载均衡器后面没有2个Web框(用于Admin,CMS和stats)。 由于目前的资金状况,我们希望停用不位于负载均衡器后面的单个设备。 盒子上有我们的CMS,媒体子域指向该盒子上的/ home / web / media。 问题是,如果我们删除该框并将所有代码(PHP)移植到负载平衡的Web框,那么在CMS中上传文件时,它只会将其上传到用户所点击框的媒体目录中。 因此,如果用户点击了web1并上传了文件,则该文件只能在web1的/ home / web / media目录中访问。 因此,当文件上传时,我们需要以某种方式rsync web1和web2上的/ media目录。 或做其他事情。
您会建议什么是实现此目标的最佳方法?
任何帮助将非常感激。
仅供参考,我们正在运行PHP 5.2,Red Hat Enterprise Linux和Apache 2.0.52
问候,
欧文
您有几种选择(已经提到过一些):
为媒体使用网络共享不是一个主意,因此您可以随时在两个服务器上都使用它吗?
function scp($username, $host, $port = 22, $file, $destination){ $dirs = explode("/", $destination); array_pop($dirs); $dirs = implode("/", $dirs); // die("\nscp ".$file." ".$username."@".$host.":".$dirs); system("ssh ".$username."@".$host." mkdir -p ".$dirs); system("scp ".$file." ".$username."@".$host.":".$destination); }
当然,您需要www-data在两个服务器上都具有其公钥并具有写特权
如果要将文件实时上传到两台服务器,只需执行此操作。
server1
。 server1
处理上载并将其存储在server1/media
。 server1
对server2/api/uploadFile
(curl)进行身份验证的请求 server2
处理上载并将其存储在server2/media
。 希望有道理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.