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

分布式架构1:Nginx实现负载均衡

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

分布式架构3:MySQL集群(Mysql Cluster7.5.5)

 

应用场景:应用服务器是集群方式,用户前后两次请求可能访问的不是一台服务器。因此已经不能像以前一样使用状态(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才会相同--注意:不同浏览器SessionId是不同的)

 

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

 

参考文档:https://www.cnblogs.com/zhang1f/p/11953463.html

posted @ 2021-07-23 09:27  CHHC  阅读(362)  评论(0编辑  收藏  举报