Session AmazonEC2ELB将负载定向到其他实例和会话存储

Session AmazonEC2ELB将负载定向到其他实例和会话存储,session,amazon-ec2,redis,load-balancing,session-store,Session,Amazon Ec2,Redis,Load Balancing,Session Store,如果我们放大(向ELB添加一个实例),我们可以将一些现有请求重定向到新实例。因此,我们强制到新服务器的用户将被要求再次登录 如果我们缩小规模(从ELB中删除一个实例),那么ELB将自动将该服务器中的所有用户重定向到其他剩余服务器。不应允许这些用户再次登录 这是否可能(包括请求重定向)?怎么做 欢迎提出任何想法,但我认为这可以通过使用中央会话存储解决。我只是不知道如何实现它 使用中央会话存储有哪些选项?simpledb?雷迪斯?内存缓存 我们的应用程序只是一个托管在apache中的简单web应用程

如果我们放大(向ELB添加一个实例),我们可以将一些现有请求重定向到新实例。因此,我们强制到新服务器的用户将被要求再次登录

如果我们缩小规模(从ELB中删除一个实例),那么ELB将自动将该服务器中的所有用户重定向到其他剩余服务器。不应允许这些用户再次登录

这是否可能(包括请求重定向)?怎么做

欢迎提出任何想法,但我认为这可以通过使用中央会话存储解决。我只是不知道如何实现它

使用中央会话存储有哪些选项?simpledb?雷迪斯?内存缓存

我们的应用程序只是一个托管在apache中的简单web应用程序。我们在AmazonELB中添加了两个实例,我们正在使用PHP


有关于ELB php的具体建议吗?当发生向下/向上缩放时,不应显示任何用户可见的症状?

在大多数情况下,这对最终用户应该是完全透明的,而不会对您的终端进行太多更改

从您的角度来看,最大的方面是通过添加/删除实例来确保会话的持久性/可用性

您可以通过在客户机上设置cookie(session_start()中的默认行为)并确保所有使用PHP的web服务器都具有获取会话id信息的功能来实现这一点


有些人会使用memcached来实现这一点……PHP中有本机集成,可以将会话存储在memcached中……

有很多方法可以实现集中的会话管理。下面列出了其中一些方法:

DB:

Memcache:

  • (确保主机能够毫无问题地连接)
  • m会话: