Laravel AWS ELB 背后的应用未按预期运行

Laravel app behind AWS ELB not working as expected

我已经被困了两天了,这是我的问题:

我正在查看我未开发的 laravel 应用程序的奇怪行为,但我有责任弄清楚发生了什么。 我在 AWS ELB 后面设置了一个 laravel 应用程序,会话由 memcached (AWS elastic cache) 处理。有时一切都很好,然后奇怪的事情发生了:

当用户登录、在应用程序中导航、做一些事情时,它会以某种方式向他显示登录页面。问题是,当我从地址栏中删除 /login 并将其替换为 /homepage 时,经过一些尝试后它通过了;它显示的主页在未登录的情况下无法访问。这表明用户未注销并且某些设置不正确。

经过调查,这是我能得出的最好的解释: 在 Laravel 中,有处理身份验证相关任务的 Catalyst/Sentry 包。当用户登录时,它会保存它的 IP(在本例中为 ELB'ip),并且由于 elb's IP 正在更改,当用户在 [=19= 之后单击 link ] IP 发生变化,应用程序认为请求无效(我只是大声思考)并向用户显示登录页面。

这是一个常见问题吗!?如果是这样我该如何解决!?

非常感谢任何帮助。非常感谢。

这看起来像是 memcached 问题。 sentry 用来识别您是否是有效用户的是 persist code。如果我的理由是正确的,那么您的 persist code 会无缘无故地发生变化(除了 memcached 行为不当)。使用 redis 代替,效果很好。