zoukankan      html  css  js  c++  java
  • Nginx + IIS实现负载均衡 Session多站点共享

    日子过得太索然无味了,研究了一下,所谓的负载均衡(主要是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共享

  • 相关阅读:
    Binary Search Tree Iterator 解答
    Invert Binary Tree 解答
    Min Stack 解答
    Trapping Raining Water 解答
    Candy 解答
    Jump Game II 解答
    Implement Hash Map Using Primitive Types
    Gas Station 解答
    Bucket Sort
    HashMap 专题
  • 原文地址:https://www.cnblogs.com/zhiyong-ITNote/p/7724980.html
Copyright © 2011-2022 走看看