Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 维护与路由53的用户会话_Session_Amazon Web Services_Amazon Ec2_Dns - Fatal编程技术网

Session 维护与路由53的用户会话

Session 维护与路由53的用户会话,session,amazon-web-services,amazon-ec2,dns,Session,Amazon Web Services,Amazon Ec2,Dns,问题描述: 我有两个位于欧洲和北美地区的EC2实例。现在,我已经设置了一条路由53,将用户请求直接发送到这些服务器 当用户被定向到一台服务器并创建会话时,下次解析域名时,它可以直接指向没有会话的另一台服务器。(例如,用户登录并单击另一个链接,必须再次登录) 想法: 我可以使用负载平衡器来确保两台服务器的会话粘性,但在这种情况下,无法设置加权循环DNS路由 我还可以增加DNS响应的TTL,但它几乎消除了WRR的影响 或者我可以将服务器配置为共享会话(我不知道如何共享会话。服务器是),但我不确定这是

问题描述:

我有两个位于欧洲和北美地区的EC2实例。现在,我已经设置了一条路由53,将用户请求直接发送到这些服务器

当用户被定向到一台服务器并创建会话时,下次解析域名时,它可以直接指向没有会话的另一台服务器。(例如,用户登录并单击另一个链接,必须再次登录)

想法:

我可以使用负载平衡器来确保两台服务器的会话粘性,但在这种情况下,无法设置加权循环DNS路由

我还可以增加DNS响应的TTL,但它几乎消除了WRR的影响

或者我可以将服务器配置为共享会话(我不知道如何共享会话。服务器是),但我不确定这是否是一种好的做法

问题:

在Amazon Web服务Route 53上使用加权循环记录时,有没有办法维护用户会话


非常感谢

DNS循环非常适合短寿命TCP连接(例如执行查询)。但是,如果您想提供更长的会话,请确保您的客户端和服务器之间的会话寿命更长。您可以在服务器和客户端之间使用,连接将保持打开状态,直到会话过期

正如您所提到的,增加TTL并不能解决问题,因为您可以将TCP连接设置为接近一个DNS响应的到期时间,并且下次从新的DNS响应获得不同的IP地址时


如果您出于任何原因不想使用HTTPSession,您最好使用它为您做同样的事情。

嗨,Mjan,谢谢您的帮助!我认为,如果TCP连接可以一直保持打开状态直到会话过期,那么问题就会得到解决,但是如何设置TCP连接过期时间呢?我简化了场景。实际上我有两组EC2,每个都有2个实例,2组位于这2个区域。实际上,每个小组前面都有一个ELB来维持会话。但我想为每一方找到一条最合适的线路53“权重”,这样成本和性能都相对最优。而Ofbiz站点实际上有会话。使用和不使用HTTPSession的区别在于,当用户在一台服务器上访问网站的不同页面时,它的会话将得到维护,但当它被定向到另一台服务器时,无论会话持续多长时间,它都将丢失。当用户只需重新加载网页时,就会发生这种情况。不幸的是,无法为TCP连接定义会话。但是,它可以通过HTTP(位于TCP之上)实现。另一种方法是将会话存储在NoSql数据库中(web应用程序程序员为此使用REDIS)。这是非常有效和可靠的。我曾考虑将会话信息存储在数据库中,但提供给我的服务器是ApacheOfBiz服务器。不知道如何将其配置为在数据库中存储会话。谢谢你的回复!