簡體   English   中英

具有粘滯會話的PHP應用程序的CodeDeploy

[英]CodeDeploy for PHP Application with Sticky Sessions

我有一個在AWS自動擴展組上運行的PHP應用程序,它使用AWS ELB后面的粘性會話。

當針對這些機器運行CodeDeploy以釋放時,CodeDeploy最初將刪除文件,然后用新文件替換它們。 但是,在這么短的時間內,所有訪問服務器的Web請求都會收到404或500個服務器錯誤,因為這些文件並非全部存在。

由於粘性會話,連接耗盡和拉出服務器的連接將無法工作,因為當我們將服務器從池中拉出時,我們將用戶登出系統。

我已經考慮將代碼部署到文件系統中的新目錄並進行rsyncing,但我認為這只會部分解決問題,因為rsync也不是即時的。

這樣的粘性會話服務器是否有選項可以看到無縫部署?

可能有用的一個選項是依賴File Exists Behavior並設置為RETAIN選項。 aws deploy create-deployment命令中的標志是--file-exists-behavior: https//docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html

如果通過控制台創建部署,則可以選擇“內容選項”,以便指定部署是否應該失敗,覆蓋或保留文件。

但是我不能100%確定是否能解決問題,因為那時你不會在部署期間更新文件。 我快速閱讀了粘性會話...但是如果它丟失了粘性會話,您的客戶端軟件是否可以重試? 我無法想到解決這個問題的方法。

就像,您的主人可能隨時消失。 在部署期間,您可能(不知道是否)從負載均衡器中刪除主機。 您的應用程序停止腳本可能會關閉主機的服務。 我敢打賭,粘性會話應該有一個解決方案,您可以從主機中排除以前的會話,並阻止新客戶端到達該主機。 但是我對你在這里所做的事情了解不夠。

我希望這些信息對您有所幫助。 -Asaf

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM