您的位置:首页 > 运维架构 > 网站架构

.Net网站架构设计(二)Web服务器集群架构

2016-02-23 18:11 483 查看

什么是web负载均衡

服务器集群(Cluster)使得多个服务器节点能够协同工作,根据目的的不同,服务器集群可以分为:

高性能集群:将单个重负载的请求分散到多个节点进行处理,最后再将处理结果进行汇总
高可用集群:提高冗余单元,避免单点故障
负载均衡集群:将大量的并发请求分担到多个处理节点。由于单个处理节点的故障不影响整个服务,负载均衡集群同时也实现了高可用性。

一般提到的负载均衡(Load Balance),是指实现负载均衡集群。负载均衡实现了横向扩展(Scale Out),避免纵向的升级(Scale Up)换代。

本文中的web负载均衡,特指能够分担web请求(http,https等)的负载均衡技术。

1、先介绍一下Web负载均衡都有哪些方式

任何的负载均衡技术都要想办法建立某种一对多的映射机制:一个请求的入口映射到多个处理请求的节点,从而实现分而治之(Divide and Conquer)。

这种映射机制使得多个物理存在对外体现为一个虚拟的整体,对服务的请求者屏蔽了内部的结构。

采用不同的机制建立映射关系,可以形成不同的负载均衡技术,常见的包括:

DNS轮询
CDN
IP负载均衡

有关负载均衡详细技术请参考:负载均衡

2、介绍一下Nginx配置

2.1首先搭建Web1、Web2、Web3 ....多台IISWeb服务。(可以再不同的机器上建立不同的端口)

例如

Web1:192.168.128.101 :10001

Web2:192.168.128.102 :10002

Web3:192.168.128.103 :10003

......

2.2配置Nginx服务器

Nginx server:192.168.128.100

将Nginx解压到任意目录。

进入目录:找到nginx配置



配置如下:

upstream pcgroup.com {

server [b]192.168.128.101:10001 weight=1;[/b]
server [b]192.168.128.102:10002 weight=2;[/b]

server [b]192.168.128.103:10003 weight=1;[/b]

}

其中:pcgroup.com 是 集群名称

使用cmd命令提示符将目录切换到nginx.exe所在目录。

启动服务输入start nginx.exe。

ok,你现在已经成功配置了负载均衡。

注:改过核心配置文件后需要重新加载配置:nginx -s reload 。停止服务使用:nginx -s stop

3、IIS集群/.Net共享Session

我们先看看IIS的几种Session模式

ASP.NET中Session的状态保持是由web.config文件中的标记下的标记的mode属性来决定的。该属性有四种可能的值:Off、Inproc、StateServer和SQlServer。

<sessionState mode="InProc" cookieless="false" timeout="20" />

3.1 Inproc,依赖 aps.net,程序重启,或者bin文件内容变动,session丢失

3.2 StateServer:<sessionState mode="StateServer" stateConnectionString="tcpip=myserver:42424" cookieless="false" timeout="20" />

克服了Inproc的缺点。但是StateServer重启,全部会话丢失。

3.3 用SQL Server进行会话管理

采用SQLserver将会话保存起来。

我们可以采用3.3,3.2来实现session共享。

3.4除IIS的session机制外,我们还可以利用Cookie ,把用户登录信息放在 缓存服务中,现在交常用的缓存服务有Redis,Memached;

我强烈建议使用3.4 使用的方法。

4、Web服务的分布式。

除以上负载均衡外,还可以将web服务的不同功能实现分开部署。

一般讲静态文件,JS,Css,和样式图片专门由一台服务器提供服务。

由文件服务集群专门提供文件资源。

根据业务将web,分为Web接口服务,web页面服务。等,以缓解不同业务功能需求对服务器造成的压力。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: