我在Amazon Web Services EC2 Ubuntu服务器上运行了Flask应用程序。当我更新代码时,我使用git将最新的代码推送到我的EC2实例。但是,由于用户已登录并且很可能处于中间位置,因此他们会退出并转到登录页面。
由于我倾向于经常部署到我的应用程序,这可能是一个问题。有没有办法在ubuntu服务器上使用AWS或Flask来防止这个问题?我听说过亚马逊的CodeDeploy,但它看起来只适用于Elastic Beanstalk实例。
我该怎么办?感谢。
答案 0 :(得分:1)
您应该使用两个弹性beanstalk环境:development&生产。将所有即时更改推送到开发环境以进行测试。当您准备好更新生产环境(可能每天一次)时,请使用弹性beanstalk的交换环境URL功能。这将指导所有用户进入新更新的环境,同时最大限度地减少停机时间。
答案 1 :(得分:1)
CodeDeploy适用于常规EC2实例,实际上不适用于Elastic Beanstalk实例。尝试阅读CodeDeploy user guide,了解有关如何使用CodeDeploy的更多信息。
这仍然无法解决您的实际问题,即您将会话数据存储在Web服务器的本地内存中。如果您需要在负载均衡器后面开始使用多个主机,即使您设法在进程之间保存并重新加载状态,也会遇到同样的问题。
这里有两个有用的选项:
您绝对可以使用CodeDeploy来帮助管理和部署这些不同的组件,但我认为您需要先了解如何保持会话。