Max*_*ire 0 session amazon-ec2 amazon-web-services amazon-elb laravel
我有一个 Laravel 应用程序部署在带有经典负载均衡器的 AWS Elastic Beanstalk 上。不知何故,用户会话在不规则的时间到期。有时它在登录后立即过期,大多数情况下在登录后几分钟。在某些情况下,它需要几个小时才能过期。但在本地主机上,这不会发生。
我已将 Laravel 应用程序中的会话持续时间配置为 10 小时,这在本地主机上运行良好,但不知何故在 AWS ELB 上不起作用。
我怀疑 AWS 在一天内多次重置应用程序会话。如果是这种情况,我该如何克服?如果不是这种情况,那么可能是什么原因造成的?
我在这里发布答案只是为了让任何人都遇到同样的问题。AWS 服务器发生的事情是,它们每天都会重新部署您的代码几次,这会清除您项目中所有新创建的文件和上传的文件。这就是为什么如果您想存储文件并且会话会发生同样的事情,您必须使用云存储。默认情况下,laravel 将会话保存在一个文件中,每当 AWS 重新部署您的代码时,它都会擦除所有当前会话,因为它删除了会话文件。解决方案是将会话存储在文件以外的任何位置。所以我用我的数据库来存储会话和缓存。你可以这样做
转到config/session.php并将驱动程序更改为数据库
运行后
php工匠会议:表
php工匠迁移
这些将为您在数据库中创建会话表,这应该可以解决 AWS 问题。就像@arun-a 简而言之。您可以查看会话文档以获取更多信息。
| 归档时间: |
|
| 查看次数: |
1303 次 |
| 最近记录: |