windows第七层负载均衡 基于IIS的ARR负载均衡详解
载均衡有很多种方法,有硬件负载均衡,软件负载均衡,还可以从域名解析下手。小编就为大家分享一篇windows第七层负载均衡_基于IIS的ARR负载均衡详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...
载均衡有很多种方法,有硬件负载均衡,软件负载均衡,还可以从域名解析下手。小编就为大家分享一篇windows第七层负载均衡_基于IIS的ARR负载均衡详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
不过,今天只讲软件负载均衡。
软件负载均衡一般分两种,从网络协议来讲(tcp/ip),主要集中在第四层和第七层进行负载均衡。
第四层就是基于IP进行负载均衡。后面还有一篇文章讲这个。
第七层就是应用层。比如各种的WEB服务器。今天就讲讲IIS的负载均衡。
第七层的Web负载均衡,很多web服务器都支持,比如IIS,Nginx,apache等。现在主要讲一下windosw下IIS如何使用负载均衡
IIS使用ARR反向代理,实现负载均衡
什么是正向代理?
代理服务器大家可能听说过,比如我们说的“科学上网”。就是使用代理服务器,请求经过代理服务器转到目的服务器。这是一个正向代理。用户知道自己使用代理,并且充许用户隐藏客户端自身。
什么是反向代理?
请求同样经过代理服务器转到目的服务器,目的服务器返回给代理服器,代理返回给客户端。不同的时候,客户并不知道,访问的是一个代理服务器。客户认为他在访问目的服务器。
两者的区别基本在于,正向代理是发生在客户端。反向代理是发生在服务端。
首先,我们先安装一个Web平台安装程序
打开web平台安装程序,搜索arr
写WebApi程序
[Route("api/[controller]")]
public class HomeController : Controller
{
// GET: api/<
controller
>
[HttpGet,Route("GetUserChat")]
public async Task<
ActionResult
> GetUserChat()
{
var collection = new MongoHelper().GetCollection<
OAChat
>("OAChat");
var chatItems =await collection.Find(n => n.ChatType == 2).Limit(5).ToListAsync();
return ApiJsonFormat.GetJsonResult(chatItems);
}
}
返回结果
{"ResultCode":1000,"Message":"成功","DetailError":null,"Data":[{"Id":"595225a5bbccc61ff88e89a7","ChatName":"testttt","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-27 17:30:13","LastChatTime":"2017-11-10 17:43:17","LastChatText":"[定位]","IsDisbanded":false},{"Id":"5952445ebbccc71ff8adf671","ChatName":"测试2","ChatType":2,"CreaterUserId":13,"Members":[],"CreateTime":"2017-06-27 19:41:18","LastChatTime":"2017-06-27 19:48:47","LastChatText":"行","IsDisbanded":true},{"Id":"5952463dbbccc71ff8adf67d","ChatName":"巡视频么么哒哒","ChatType":2,"CreaterUserId":13,"Members":[],"CreateTime":"2017-06-27 19:49:17","LastChatTime":"2017-12-20 19:47:17","LastChatText":"[定位]","IsDisbanded":false},{"Id":"59524c0ebbccc71ff8adf6ae","ChatName":"rrrffff","ChatType":2,"CreaterUserId":13,"Members":[],"CreateTime":"2017-06-27 20:14:06","LastChatTime":"2017-06-27 20:34:54","LastChatText":"6565","IsDisbanded":false},{"Id":"59531cdfbbccc414e8f6769f","ChatName":"都纷纷fee俄方热热","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-28 11:05:03","LastChatTime":"2017-06-28 11:05:13","LastChatText":"123","IsDisbanded":true},{"Id":"59531de5bbccc414e8f676a1","ChatName":"天赋过人托管人","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-28 11:09:25","LastChatTime":"2017-06-28 11:09:33","LastChatText":"呃呃呃","IsDisbanded":true},{"Id":"59531e40bbccc414e8f676a3","ChatName":"热热","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-28 11:10:56","LastChatTime":"2017-06-28 17:58:41","LastChatText":"333","IsDisbanded":false},{"Id":"59532140bbccc414e8f676a6","ChatName":"会厌结核有机会好好","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-28 11:23:44","LastChatTime":"2017-06-28 11:24:40","LastChatText":"eee","IsDisbanded":true},{"Id":"595321d3bbccc414e8f676a8","ChatName":"656565656","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-28 11:26:11","LastChatTime":"2017-06-28 18:50:08","LastChatText":"ggg","IsDisbanded":false},{"Id":"5954d0eebbccc40fecbea435","ChatName":"r","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-29 18:05:34","LastChatTime":null,"LastChatText":null,"IsDisbanded":false}]}
//设置ARR
192.168.99.5 //代理服务器
192.168.99.6 //目的服务器
192.168.99.7 //目的服务器
192.168.99.8 //目的服务器
192.168.99.10 //目的服务器
192.168.99.11 //目的服务器
192.168.99.12 //目的服务器
192.168.99.13 //目的服务器
首先给服务器安装net core 运行环境
DotNetCore.2.0.5-WindowsHosting 安装包内置SDK和WindowsHosting,直接安装这个,安装成功之后,要重启服务器才能生效。然后部署Web就可以访问了
选择无托管代码
好,部署成功之后,可以正常访问了
好,马上试一下部署ARR,是否能实现反向代理
添加一个入口站点,默认端80。
非常简单数据出来啦。理论就搭建成功了。
192.168.99.5 的站点,还有两个地方要注意设置
IIS程序池的队列长度。由于这是代理服务器很多请求都会经过这个站点,所以这个长度就设置长一点。默认值是1000。
IIS程序池的闲置超时。设置为0,将长期保持不回收状态。
转化服务器的网卡要目的服务器的网卡要好,这样能支撑更大的流量需求。
下面把一些细节介绍一下,然后做一下压力测试,就大功告成啦。
安装ARR完成之后,会出现两个
URL重写充许你定则重写规则,我没怎么用过,特么不嫌麻烦。这就不细讲了。
Server Farms可以对你的集群进行管理,健康检查,转化统计。
分别对应的是:缓存,健康检查,负载均衡,监视和管理,代理,路由规则,服务器相关性
健康检查:主要是检查各个服务器的IIS是否正常运作。(这个也是第七层负载均衡的一个好处,能感知Web服务器是否正常运作)
负载均衡:主要作用是设置各种分发规则。比如根据权重,最小响应时间,最小请求量等
监视和管理:主要让你看到各个服务器的健康情况,请求量,失败量,缓存命中率等。
服务器相关性:主要提供一种服务器和客户端之间的粘性。简单理解就是,客户端A的请求分配到服务器B处理之后,以后客户端A的请求都分配到服务器B处理。(这样设计理论会使用分配不均,当然也有好处,比如可以使用本地session)
Client Affinity: 根据客户端的cookies处理粘性
Host Name Affinity 根据Host name处理粘性
下面试一下压力测试,用大微软的VS2017进行压力测试,细节我就不讲了,贴了一些结果吧。
在测试过的过程中,经常现一个502.3 Timeout Errors的问题,是ARR3.0的问题,换回ARR2.0 版本之后,就正常了。
启动性能监视器,统计每秒请求数,也与压力测试的结果吻合。每秒358次。
ARR测试到止结束,下班。
以上这篇windows第七层负载均衡_基于IIS的ARR负载均衡详解就是小编分享给大家的全部内容了,希望能给大家一个参考,
- windows服务器第四层负载均衡_基于NLB负载均衡详解
- windows NLB+ARR实现Web负载均衡高可用/可伸缩的方法
- 阿里云服务器apache配置SSL证书成功开启Https的教程
- 在Win2008 r2服务器英文版IIS7.5上Https、SSL的配置方
- Windows服务器SSL证书创建、安装及配置方法教程
- Windows服务器操作系统安全配置检查和加固方法
- Windows服务器启用/禁用SMBv1、SMBv2和SMBv3的方法教
- windows server 2008 r2 DNS服务器配置教程图文详解
- Windows Server 2019服务器系统安装教程图文详解
- 如何使用linux的服务器需要进行的配置
-
windows服务器第四层负载均衡_基于NLB负载均衡详解
小编为大家分享一篇windows第四层负载均衡_基于NLB负载均衡详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...
-
windows NLB+ARR实现Web负载均衡高可用/可伸缩的方法
小编就为大家分享一篇windows NLB+ARR实现Web负载均衡高可用/可伸缩的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...
-
阿里云服务器apache配置SSL证书成功开启Https的教程
文章主要介绍了阿里云服务器apache配置SSL证书成功开启Https(记录趟过的各种坑),需要的朋友可以参考下环境:阿里云云服务器 Windows Server 2008 标准版 SP2 中文版(趁1212优...
-
在Win2008 r2服务器英文版IIS7.5上Https、SSL的配置方法
在win2008 r2 英文版 IIS7.5上配置Https,SSL的方法,在非服务器、而且没有证书颁发机构(Certificate Authority简称CA)的开发环境中,配置HTTPS,SSL用于测试或学习 。...
-
Windows服务器SSL证书创建、安装及配置方法教程
文章主要介绍了windows服务器ssl证书创建、安装及配置方法,用IIS发布https网站,SSL的安全服务配置步骤:...
-
Windows服务器操作系统安全配置检查和加固方法
本文档旨在指导系统管理人员或安全检查人员进行Windows操作系统的安全合规性检查和配置,需要的朋友可以参考下。1. 账户管理和认证授权1.1 账户默认账户安全禁用Guest账户。...
-
Windows服务器启用/禁用SMBv1、SMBv2和SMBv3的方法教程
文章主要介绍了如何在 Windows 和 Windows Server 中启用/禁用 SMBv1、SMBv2 和 SMBv3的方法,需要的朋友可以参考下。如何在 SMB 客户端和服务器组件上启用/禁用服务器消息...
-
windows server 2008 r2 DNS服务器配置教程图文详解
DNS服务器的作用就是帮助用户使用简单好记的域名来访问网络上的主机和网络服务。这篇文章主要介绍了windows server 2008 r2 DNS服务器配置图文教程,需要的朋友可以参考下。...
-
Windows Server 2019服务器系统安装教程图文详解
indows Server 2019是由微软(Microsoft)官方推出的最新版服务器版操作系统,该系统基于Win Server 2016开发而来,后者是微软迄今为止普及速度最快的服务器系统。...
-
如何使用linux的服务器需要进行的配置
这篇文章主要内容就是对如何使用linux的服务器需要进行的配置。根据小编我努力的学习成果,我们现在的进程已经到了对linux服务器的学习,但是当你想要学习linux服务器时...