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