[英]Cakephp 2.x Session expire very soon
由于服务器使用了负载平衡,因此我遇到了同样的问题。 更改主机时,会话丢失。 您是否已经联系BigRock?
您可以将会话放入数据库或redis / memcached中以解决此问题。
由于负载平衡器将请求路由到不同的服务器,并且服务器被配置为将会话数据以本地存储/缓存机制存储到单个服务器,所以发生了他的问题。
当服务器接收到具有由其他服务器分配的会话ID的请求时,它将无法识别该会话ID,因为它在其本地会话存储/缓存中丢失。 因此,它将发送401 - Unauthorized
标头供客户端重新认证。
解决方案可以分两层实现:
这两种解决方案都有其优点和缺点,主要缺点是缺乏灵活性。 这是微服务架构仅将jwt
令牌用于身份验证和授权的原因之一。
恕我直言,您决定实施哪一层取决于实施变更的性能和工作量要求。 如我所见,您可以轻松地更改应用程序配置以将会话存储在数据库中(尽管更喜欢使用缓存),但是肯定会对性能造成影响。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.