[英]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.