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
代替,效果很好。
我已经被困了两天了,这是我的问题:
我正在查看我未开发的 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
代替,效果很好。