0 0

sinatra+thin+nginx的session问题5

我这里有个基于ruby sinatra的Web应用,使用的是thin服务器,之前部署在一台服务器上访问没有问题。考虑到如果访问客户量增大需要负载平衡,我搭建了Nginx反向代理服务器,现在测试结果是,如果一个用户登录到系统中,该系统崩溃了的话,Nginx可以将其指向到另外的服务器,但是该用户就被强制退出了系统,需要重新输入用户名密码登录,这样对用户太不方便了。请问Nginx后面的多台thin服务器如何构建成cluster,并且实现session的共享或复制?或者有没有其他好的方案实现上述功能?
2012年11月05日 11:07

1个答案 按时间排序 按投票排序

0 0

貌似thin服务器不支持session复制。
可以考虑使用memchached(支持ruby)这类的内存对象缓存系统,把session利用memchached来管理,各台thin服务器都共用memchached中管理的session。

还一种方法可以考虑当用户登陆成功后,把sessionid写入数据库中,这样一台thin服务器崩溃的话,另一台可以到数据库中检索request中的sessionid是否存在,如果存在就说明用户已经登陆。

2012年11月09日 11:21

相关推荐

Global site tag (gtag.js) - Google Analytics