本文采用Nginx来实现ASP.NET程序集群化。

  准备环境

  首先准备Nginx环境,Windows版本下载链接:http://nginx.org/en/download.html

  解压后文件格式如下:

  

  修改配置文件

  打开 conf 文件夹中的 nginx.conf 配置文件

  

  配置说明:

  1.listen #表示需要监听的端口(默认为80)

  2.server_name #服务器地址

  3.location #代理配置

  4.upstream #配置负载均衡服务器列表(处理监听到请求的服务器)

  需要注意的是 upstream 中的 ip_hash; 节点,该节点表示启用Nginx的ip哈希分配算法,意味着同一ip地址的不同请求将会被分配至同一服务器。好处就是不用借助第三方工具管理Session,坏处就是并非正真的负载均衡(会出现有的服务器请求处理不过来,有的服务器只接收到少量的请求)。若使用第三方Session管理工具请删除此配置节点。

  测试

  启动nginx.exe程序

  浏览器访问我们配置的负载均衡服务器节点,即 127.0.0.1:2018 (端口根据自己部署的程序配置)。

  提示

  在整个配置中需要注意的是80端口被占用的问题。或者像我一样改Nginx的监听端口(如果更改监听端口则可以忽略下面的问题)

  1.将IIS中默认的Default Web Site端口改掉

  2.如果电脑装有Sql server 则还需关闭SQL Server Reporting Services服务(此服务会占用80端口)

  3.其它问题敬请百度...

  不同服务器同步Session

  如果启用Nginx的ip_hash配置请忽略本条,此项针对不同服务器之间Session共享提供建议方案。  

  一、状态服务器Session(启动独立的进程保存Session)    

  首先开启一个ASP.NET 状态设置的服务

即:在 “我的电脑” 鼠标右键--->管理--->服务和应用程序----> 服务--->ASP.NET状态服务(或者ASP.NET State Service)--->点击右键选择“启动”

启动ASP.NET状态服务后,然后再Web.config配置文件中添加<sessionState>这个节点内容

<?xml version="1.0" encoding="utf-8"?>

<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
--> <configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<!--状态服务器Session的配置 :添加这一段代码-->
<sessionState stateConnectionString="tcpip=127.0.0.1:2018" mode="StateServer"></sessionState>
</system.web> </configuration>

Config

  二、数据库Session

  怎么将Session记录到数据库中呢? 其实微软已经为我们设置好了。只要我们简单的配置一下就行了。

首先。我们进入C盘下的 Windows文件夹 下的Microsoft.Net文件夹下的Framework/Framework64文件夹下的v4.0.30319文件夹下:找到aspnet_regsql 文件。

具体的路径是: C:\Windows\Microsoft.NET\Framework64\v4.0.30319

然后:快捷键win+R调出cmd 命令窗口

在cmd中进入C:\Windows\Microsoft.NET\Framework64\v4.0.30319文件夹下

即:在cmd 命令中输入:cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319

然后执行 aspnet_regsql.exe -S . -U sa -P 123456 -ssadd -sstype c -d Demo

解释一下 aspnet_regsql.exe表示执行这个文件 ,-S  后接的参数为数据库服务器的名称或者IP地址;-U 表示SqlServer的登陆用户名是sa  ,-P 表示登陆密码是123456   最后面的demo是数据库名,即:你要将Session保存到哪个数据库下。

点击回车键后,直到执行完毕

  

  Web.Config配置:

<?xml version="1.0" encoding="utf-8"?>

<!--
有关如何配置 ASP.NET 应用程序的详细信息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
--> <configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<!--进程外Session添加这一段代码-->
<!--<sessionState stateConnectionString="tcpip=127.0.0.1:2018" mode="StateServer"></sessionState>--> <!--数据库Session配置文件-->
<!--timeout是设置Session过期时间,这里设为60分钟。如果不设置,则默认为20分钟-->
<sessionState sqlConnectionString="server=.;database=Demo;uid=sa;pwd=123456" allowCustomSqlDatabase="true" mode="SQLServer" timeout=""></sessionState>
</system.web> </configuration>

Config

  登陆数据库验证:

上面两张表就是根据配置自动生成保存Session的数据表。

至此Session共享问题已解决。

ASP.NET应用程序服务器集群方案的更多相关文章

  1. 开源流媒体服务器SRS学习笔记(4) - Cluster集群方案

    单台服务器做直播,总归有单点风险,利用SRS的Forward机制 + Edge Server设计,可以很容易搭建一个大规模的高可用集群,示意图如下 源站服务器集群:origin server clus ...

  2. PostgreSQL高可用性、负载均衡、复制与集群方案介绍

    目录[-] 一.高可用性.负载均衡.复制的几个方案比较: 二.多节点集群方案比较 9.3官方文档(中文):http://58.58.27.50:8079/doc/html/9.3.1_zh/high- ...

  3. Redis集群方案介绍

    由于Redis出众的性能,其在众多的移动互联网企业中得到广泛的应用.Redis在3.0版本前只支持单实例模式,虽然现在的服务器内存可以到100GB.200GB的规模,但是单实例模式限制了Redis没法 ...

  4. Linux服务器集群系统(二)--转

    引用地址:http://www.linuxvirtualserver.org/zh/lvs2.html LVS集群的体系结构 章文嵩 (wensong@linux-vs.org) 2002 年 4 月 ...

  5. 10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡

    分布式,集群,云计算机.大数据.负载均衡.高并发······当耳边响起这些词时,做为一个菜鸟程序猿无疑心中会激动一番(或许这是判断是否是一个标准阿猿的标准吧)! 首先自己从宏观把控一下,通过上网科普自 ...

  6. 浅析Linux服务器集群系统技术

    浅析Linux服务器集群系统技术 目录 前言 常用的服务器集群 集群系统的优势 LVS集群的通用体系结构 为什么使用层次的体系结构 为什么是共享存储 可伸缩Web服务 前言 总结两篇技术文章,努力学习 ...

  7. Redis 集群方案介绍

    由于Redis出众的性能,其在众多的移动互联网企业中得到广泛的应用.Redis在3.0版本前只支持单实例模式,虽然现在的服务器内存可以到100GB.200GB的规模,但是单实例模式限制了Redis没法 ...

  8. 分布式缓存集群方案特性使用场景(Memcache/Redis(Twemproxy/Codis/Redis-cluster))优缺点对比及选型

    分布式缓存集群方案特性使用场景(Memcache/Redis(Twemproxy/Codis/Redis-cluster))优缺点对比及选型   分布式缓存特性: 1) 高性能:当传统数据库面临大规模 ...

  9. 转载-lvs官方文档-Linux服务器集群系统(二)

    Linux服务器集群系统(二) LVS集群的体系结构 章文嵩 (wensong@linux-vs.org) 2002 年 4 月 本文主要介绍了LVS集群的体系结构.先给出LVS集群的通用体系结构,并 ...

随机推荐

  1. 解决 'boost/iterator/iterator_adaptor.hpp' file not found’ 及控制台":CFBundleIdentifier", Does Not Exist

    "react-native": "0.46.1" 这个问题产生原因: * /Users/Vanessa/.rncache 中 boost_1_63_0.tar. ...

  2. Hadoop配置第2节-JDK的安装

    Hadoop配置-JDK的安装 总体目标:完成zookeeper+Hadoop+Hbase 整合平台搭建   进度:1:集群网络属性配置2:集群免密码登陆配置3:JDK的安装4:Zookeeper的安 ...

  3. 分布式日志框架Exceptionless之生产环境部署步骤

    Exceptionless 是一个开源的实时的日志收集框架,它将日志收集变得简单易用并且不需要了解太多的相关技术细节及配置.本篇基于我的上一篇<基于Exceptionless实现分布式日志> ...

  4. .net mvc + layui做图片上传(二)—— 使用流上传和下载图片

    摘要:上篇文章写到一种上传图片的方法,其中提到那种方法的局限性,就是上传的文件只能保存在本项目目录下,在其他目录中访问不到该文件.这与浏览器的安全性机制有关,浏览器不允许用户用任意的路径访问服务器上的 ...

  5. x宝23大洋包邮的老式大朝华MP3播放器简单评测

    (纯兴趣测评,非广告) 最近逛X宝,看到了这个古董级MP3播放器居然还在售,于是脑抽+情怀泛滥买了一个. 然后呢,从遥远的深圳跨越好几千公里邮过来了这个玩意: 那节南孚5号电池是我自己的,是为了对比一 ...

  6. wep api 运行周期

    1 程序集解析 2.HttpController类型的解析 3.HttpController 的选择 4.HttpController的创建 二,web api的承载宿主,iis selfhost.O ...

  7. Vault安装、配置、使用

    一.环境搭建 官网指导步骤:https://learn.hashicorp.com/vault/#getting-started 1. 下载vault安装文件 2. dev环境启动 ./vault s ...

  8. Linux新手随手笔记1.8

    配置网卡服务 将网卡的配置文件,保存成模板,叫做会话. nmcli命令查看网卡信息.nmcli是一款基于命令行的网络配置工具 只有一个网卡信息,下面我们再添加一个. 公司:静态IP地址 家庭:DHCP ...

  9. 开源的类似于Apache ab的压力测试命令行工具SuperBenchmarker

    SuperBenchmarker 是ㄧ个开源的类似于Apache ab的压力测试命令行工具.可以在 .NET 4.52+ 或者 .NET Core 2.0+ 平台上运行. 可支持Get.Post.Pu ...

  10. 微擎where范围查询in

    where sale_time in($todayStart,$todayEnd)