Nginx + IIS实现负载均衡 Session多站点共享_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > Nginx + IIS实现负载均衡 Session多站点共享

Nginx + IIS实现负载均衡 Session多站点共享

 2017/10/24 18:55:50  又见阿郎  程序员俱乐部  我要评论(0)
  • 摘要:日子过得太索然无味了,研究了一下,所谓的负载均衡(主要是windows服务器IIS下的)。先看看分析图:环境:linux服务器:centos6.3windows服务器:windowsserver2012IIS8.5数据库:SqlServer2008R2我在centos上部署了nginx,做负载均衡,IIS上放了两个站点A,B(这样设计不合理,应该是一台服务器配一个站点,多个应用服务器部署同一个站点,但是我实在是没有多的服务器了,就两,在一个IIS上部署多个站点与多个IIS部署一个站点原理差不多
  • 标签:iiS 实现 Nginx

日子过得太索然无味了,研究了一下,所谓的负载均衡(主要是windows服务器IIS下的)。先看看分析图:

环境:
linux服务器: centos 6.3
windows服务器: windows server 2012   IIS 8.5
数据库: Sql Server 2008 R2

我在centos 上部署了nginx,做负载均衡,IIS上放了两个站点A,B(这样设计不合理,应该是一台服务器配一个站点,多个应用服务器部署同一个站点,但是我实在是没有多的服务器了,就两,在一个IIS上部署多个站点与多个IIS部署一个站点原理差不多。)对于多站点共享session,我采用的是最简单的微软提供的Session 数据库。
首先部署nginx, 可以参考<<云平台开发架构分析系列8:Nginx服务器初次使用讲解》系列文章部署,随后我们打开VS2010,创建两个web项目,然后放到IIS上,具体部署请看《IIS部署ASP.NET MVC项目》
随后我们在windows服务器上的SQL Server 2008上添加ASPStat数据库,打开windows 服务器然后查找aspnet_regsql.exe(Framework64下的)
我们找到aspnet_regsql.exe的路径,然后在cmd 用cd 打开该路径,执行命令:

aspnet_regsql.exe -S . -u sa -p password p

随后创建ASPStat数据库
然后我们在web.config 里面配置:

<sessionState mode="SQLServer" sqlConnectionString="Data Source=xxxxx; User ID=sa; Password=xxxxxxx;"> 
 </sessionState> 
 <machineKey decryption="AES" decryptionKey="869BF3D585F39B25C032E42A51B9C8C6DBA5CAE6EEB6DC48,IsolateApps" validationKey="6080AA874E125C595E4A5986A754ABC67BC5D10DC39CCE2BBE0A1AF5B61D3E03C6BD5C97A812F6E160F37337EEEE2C27619A3B18C84A26D5BB417CA8969EF9F3,IsolateApps"/>

配置完之后,我们就能在session 数据库里面看到session信息了。
下面我们测试下,首先我在360浏览器里面访问IIS上的站点:

    

    

session数据库中的截图:

火狐浏览器的测试:

    

    

session数据库中的截图

的确实现了多站点的session共享,但是在实际项目中这种设计性能不行,还是建议redis, memcached来存储session比较好,而且.net 的第三方session接口做的也不错。

参考:

nginx配合IIS实现简单负载均衡

Nginx + IIS + Web前端(Spring MVC)——负载均衡(二)

nginx 负载均衡,多站点共享Session

Asp.net 多服务器 Session共享

发表评论
用户名: 匿名