目前我公司有3台服务器设置。负载平衡器后面的2个Web框和负载平衡器后面的另一个框(用于Admin,CMS和stats)。由于目前的资金状况,我们正在寻求退役我们的单箱,而不是负荷平衡器的后面。该框上有我们的CMS,媒体子域指向该框上的/ home / web / media。问题是如果我们删除框并将所有代码(PHP)移植到负载平衡的Web框上,那么当在CMS中上载文件时,它只会将其上载到用户点击的框的媒体目录中。因此,如果用户点击web1并上传文件,该文件只能在web1的/ home / web / media目录中访问。所以我们需要以某种方式在上传文件时同步web1和web2上的/ media目录。或者做点别的。
您认为什么是实现这一目标的最佳方法?
非常感谢任何帮助。
仅供参考,我们运行的是PHP 5.2,Red Hat Enterprise Linux和Apache 2.0.52
此致
欧文
答案 0 :(得分:3)
你有几个选择(有些已经提到过):
答案 1 :(得分:2)
为媒体使用网络共享不是一个想法,因此您可以随时在两台服务器上使用它吗?
答案 2 :(得分:0)
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在服务器和写权限上都有公钥
答案 3 :(得分:0)
如果您希望将文件实时上传到两台服务器,请执行此操作。
server1
上传文件。server1
处理上传并将其存储在server1/media
。server1
向server2/api/uploadFile
(curl)server2
处理上传并将其存储在server2/media
。希望这是有道理的。