系统相关
首页 > 系统相关> > 分布式架构2:Nginx下Session存储

分布式架构2:Nginx下Session存储

作者:互联网

应用场景:应用服务器是集群方式,用户前后两次请求可能访问的不是一台服务器。因此已经不能像以前一样使用状态(Application、Session、Cache、ViewState等),使用Redis作为缓存服务

1. nuget下载 RedisSessionProvider
2. StackExchange.Redis 1.0.320
3. web.config
<system.web>
<sessionState mode="Custom" customProvider="RedisSessionProvider">
<providers>
<add name="RedisSessionProvider" type="RedisSessionProvider.RedisSessionStateStoreProvider, RedisSessionProvider"/>
</providers>
</sessionState>
</system.web>

4. Global.asax
void Application_Start(object sender, EventArgs e)
{

StackExchange.Redis.ConfigurationOptions redisConfigOpts = StackExchange.Redis.ConfigurationOptions.Parse("192.168.8.138:6379");
RedisSessionProvider.Config.RedisConnectionConfig.GetSERedisServerConfig = (HttpContextBase context) =>
{
return new KeyValuePair<string, StackExchange.Redis.ConfigurationOptions>(
"DefaultConnection",
redisConfigOpts);
};
}

安装Redis
修改Redis.windows.conf,如果不修改,远程不能访问Redis

将bind 127.0.0.1 改成了bind 0.0.0.0。注意:进入生产环境时候,要启用密码,否则会是Redis漏洞

启动Redis

 

测试(iis发布+程序调试,确保使用同一个浏览器,sessionid才会相同)

 

redis数据库中存储的session(key为sessionid)

 

标签:ConfigurationOptions,Application,redisConfigOpts,Redis,Nginx,sessionid,Session,S
来源: https://www.cnblogs.com/chen1880/p/15047404.html