AWS ELB背后的Laravel应用程序无法按预期工作

时间:2016-05-23 23:33:05

标签: amazon-web-services laravel-4 memcached amazon-elb cartalyst-sentry

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

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

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

在对此进行调查后,这是我能够制定的最佳解释: 在Laravel中,有一个Catalyst / Sentry包来处理与身份验证相关的任务。当用户登录时,它会保存其IP(在这种情况下是ELB'ip),并且因为elb's IP正在更改,当用户点击链接后ELB发生了IP更改,应用程序认为请求无效(我只是大声思考)并向用户显示登录页面。

这是一个常见的问题!?如果是这样我怎么解决这个问题??

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

1 个答案:

答案 0 :(得分:1)

这看起来像memcached问题。 sentry用于识别您是否为有效用户的内容称为persist code。如果我的结果是正确的,那么persist code更改没有明确原因(memcached行为不当)。使用redis代替,完美运作。