1042
英雄联盟
[ASP.NET]Session在多个站点之间共享解决方案__IIS Service_Web服务/数据库服务_Windows操作运维问题_云服务器 ECS-阿里云
问题现象
ASP.NET程序网站如何在多个站点之间实现session共享?
,解决方案
,,1. 写客户端Cookie的方式
,,当用户登陆成功以后,把网站域名、用户名、密码、token、 session有效时间全部采用cookie的形式写入到客户端的cookie里面,如果用户从一台Web服务器跨越到另一台服务器的时候,我们的程序主动去检测客户端的cookie信息,进行判断,然后提供对应的服务,当然,如果cookie过期,或者无效,自然就不让用户继续服务了。目前淘宝session框架就是基于client cookie做开发,不见得他们就出了很大的问题?也许是最可行的方式,可以配合memcached来实现。
,, ,,2. 服务器之间Session数据同步的方式
,,假设Web服务器A是所有用户登陆的服务器,那么当用户验证登陆一下,session数据就会写到A服务器里,那么就可以自己写脚本或者守护进程来自动把session数据同步到其他Web服务器,那么当用户跳转到其他服务器的时候,那么session数据是一致的,自然就能够直接进行服务无须再次登陆了。缺点,可能会速度慢,不稳定,如果是单向同步的话,登陆服务器出现问题,那么其他服务器也无法服务,当然也可以考虑双向同步的问题,目前zookeeper可以实现。
,, ,,3. 利用NFS共享Session数据的方式
,,其实这个方案和下面的Mysql方案类似,只是存储方式不一 样。大致是有一台公共的NFS服务器(Network File Server)做共享服务器,所有的Web服务器登陆的时候把session数据写到这台服务器上,那么所有的session数据其实都是保存在这台 NFS服务器上的,不论用户访问哪台Web服务器,都要来这台服务器获取session数据,那么就能够实现共享session数据了。缺点是依赖性太强,如果NFS服务器down掉了,那么大家都无法工作了,当然,可以考虑多台NFS服务器同步的形式。这个方案都可以解决,目前zookeeper可以实现或者memcached也可以实现session共享。
,, ,,4. 利用Mysql数据库共享Session数据的方式
,,这个方式与NFS的方式类似,也是采用一台Mysql服务器做共享服务器,把所有的session的数据保存到Mysql服务器上,所有Web服务器都来这台Mysql服务器来获取Session 数据。缺点也是依赖性太强,Mysql无法工作了影响所有的Web服务器,当然,可以考虑多太Mysql数据库来共享session,使用同步Mysql 数据的方式。这种方式跟方式3类似,同样可以采用memcached来做,nosql也可以实。
如果问题还未能解决,您可以到阿里云社区进行免费咨询,或联系云市场商家寻求帮助。
最后更新:2016-07-12 15:24:03
上一篇:
修改本机系统Hosts文件来测试Web应用防火墙__常见问题_常见问题_Web 应用防火墙-阿里云
下一篇:
什么是公钥和私钥?__常见问题_产品常见问题_证书服务-阿里云
考试形式和试卷结构__弹性计算认证(ACP级)_如何获得专业技术认证?_专业技术认证-阿里云
DomainType__数据类型_API文档_云解析-阿里云
GetObjectACL__关于Object操作_API 参考_对象存储 OSS-阿里云
查询推流历史__直播流操作接口_API 手册_CDN-阿里云
阿里云栖大会超详干货:马云投入千亿成立达摩院,要比阿里活更久
负载均衡+ECS站点虚拟子目录的设置案例___最佳实践_负载均衡-阿里云
新建索引__结构管理_DMS for MongoDB_用户指南(NoSQL)_数据管理-阿里云
人口普查统计案例__案例_机器学习-阿里云
索引切割__图片裁剪_图片处理指南_对象存储 OSS-阿里云
控制台快速开始__快速入门_批量计算-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云