构建高性能.NET应用之配置高可用IIS服务器-第三篇 IIS中三个核心组件的讲解(上)

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介:
系列文章:
构建高性能.NET应用之配置高可用IIS服务器-第二篇 IIS请求处理模型
 
       今天的文章的比较的容易,主要讲述IIS中三个比较重要的组件:协议监听者(Protocol Listeners),WWW服务(World Wide Web Publishing Service)和WAS(Windows  Process Activation Service),理解这三个组件的功能,是理解IIS的必须的知识。
 
       下面,我们首先来看第一个。
 
协议监听者(Protocol Listeners)
 
       我们知道,很多不同类型的应用程序都需要它们的客户端以不同的协议与它们进行通信,我们稍微简单的来举几个例子让大家明白:
  1. Web应用程序采用Http来通信。Web应用程序通过接受Http请求和发送Http响应给客户端的方式来进行通信。
  2. WCF应用程序可以采用很多的协议来进行通信,包括:HTTP, NET.TCP, NET.PIPE, 和 NET.MSMQ
       在这里各种不同类型的应用中,协议监听者就是一个负责监听特定协议的请求,然后把请求传递给IIS的组件。每一个协议都有它自己的监听者。IIS7中包括了四个协议的监听者:HTTP.SYS,NET.TCP,NET.PIPE和NET.MSMQ。如果要对其他的协议进行监听,那么可以采用PlugIn的方式写新协议的监听者组件,然后插入到IIS7中(就是采用所谓的“插件式”方式)。
 
       IIS 7中采用了HTTP.SYS来对HTTP请求进行监听,同时在安全性方面也有了改进,因为它也可以对SSL的请求进行监听。另外,对于HTTP.SYS,在IIS6和IIS7中都支持一下功能:
  1. HTTP.SYS被实现成为内核模式中的一个组件
  2. HTTP.SYS直接将接受到的HTTP请求传递给请求的处理工作进程,并且在中途不会出现任何的进程间通信的开销。在IIS6的之前的版本中,HTTP请求首先被用户模式中的进程inetinfo.exe接受,这个进程再把请求转发给IIS中的工作进程,这个过程就涉及到了工作进程与IIS之前跨进程通信了。
  3. 每一个应用程序池都有自己的基于内核模式的请求队列。当没有足够的工作进程来处理HTTP请求的时候,HTTP.SYS就把新来的请求放在队列中。之后,工作进程会直接从队列中拿出请求进行处理,在过程中不会涉及到进程间通信的开销。
  4. HTTP.SYS会把请求的输出的响应缓存在内核缓存中,方便对后续的请求进行快速的响应。
下面,我们来看第二个组件。
 
WAS(Windows  Process Activation Service)
 
       WAS的主要的职责就是去读取applicationHost.config配置文件中的配置项。有些配置项是用来配置协议监听者的。在之前我们讨论过,每一个协议都有一个监听者(在IIS6中,可以支持的协议只有HTTP协议,在IIS7中因为引入了插件式的协议监听者的方式,所以可以处理很多的协议,如果大家还记得话,要把WCF部署在IIS6中,那么就只能通过HTTP协议)。
 
       如果WAS直接与每个特定的协议监听者交互,那么WAS就与这些协议的监听者仅仅的耦合在了一起,不能与其他的协议监听者交互(因为我们无法修改WAS的代码,除非微软发布新的版本)。所以在IIS7中,在这里就引入了协议监听适配器,其实就是采用了adapter模式了。让WAS依赖抽象,而不是依赖具体的实现。
 
       协议监听适配器将WAS与具体的协议的监听者隔离。那么每一个协议都有一个协议的适配者。例如HTTP协议的适配者知道如何去适配HTTP.SYS,如果对设计模式比较熟悉的朋友,应该非常清楚这一点了。
 
       WAS读取applicationHost.config配置文件中的配置信息,然后把这些信息用在协议监听适配者上。协议监听适配者采用这些配置的信息来监听特定通道的请求。
 
       WAS除了读取配置信息以外,它还负责其他一些比较重要的职责:
  1. 使用applicationHost.config配置文件的配置信息来配置和启动应用程序池,来处理请求。
  2. 根据applicationHost.config配置文件的配置信息来监控,重启,关闭和管理应用程序池以及相关的工作进程。
 
       理解了上面的内容之后,那么现在应该就非常清楚IIS中请求的处理流程了:
  1. 当请求达到的时候,协议监听程序开始运行。
  2. 特定的协议监听适配者被创建,并且通知特定的应用程序池请求到达。
  3. WAS检查是否已经有一个工作进程在应用程序池中运行,如果没有,WAS就在应用程序池中创建一个新的工作进程,然后把请求交给这个工作进程来处理,并且这个进程也随后去处理应用程序池的请求队列中的请求。
 
系列文章链接:
 
 
 


























本文转自yanyangtian51CTO博客,原文链接: http://blog.51cto.com/yanyangtian/835637
 ,如需转载请自行联系原作者







相关实践学习
小试牛刀,一键部署电商商城
SAE 仅需一键,极速部署一个微服务电商商城,体验 Serverless 带给您的全托管体验,一起来部署吧!
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
4天前
|
Ubuntu 安全 网络安全
在Ubuntu系统下使用vsftpd配置FTP服务器的步骤
以上就是在Ubuntu系统下使用vsftpd配置FTP服务器的步骤。这些步骤都是基础的,但足够让你建立一个简单的FTP服务器。如果你需要更高级的功能,例如SSL加密、虚拟用户等,你可能需要进一步研究vsftpd的配置选项。
43 13
|
13天前
|
存储 监控 API
【Azure App Service】分享使用Python Code获取App Service的服务器日志记录管理配置信息
本文介绍了如何通过Python代码获取App Service中“Web服务器日志记录”的配置状态。借助`azure-mgmt-web` SDK,可通过初始化`WebSiteManagementClient`对象、调用`get_configuration`方法来查看`http_logging_enabled`的值,从而判断日志记录是否启用及存储方式(关闭、存储或文件系统)。示例代码详细展示了实现步骤,并附有执行结果与官方文档参考链接,帮助开发者快速定位和解决问题。
63 22
|
6天前
|
存储 弹性计算 数据处理
阿里云服务器2核8G、4核16G、8核32G配置热门实例价格、性能与场景全攻略
2核8G/4核16G/8核32G配置的阿里云服务器在阿里云活动中目前有经济型e、通用算力型u1、通用型c7、通用型g8i和通用型g8y五种实例可选,虽然配置相同,但是这些实例规格之间的价格差别是很大的。面对不同配置和类型的云服务器实例,有的新手用户往往因为不知道他们之间的区别,所以不知道如何选择。本文将针对常见的2核8G、4核16G、8核32G配置,深入剖析阿里云服务器中的经济型e、通用算力型u1、通用型g7及通用型g8y实例,以供大家参考和选择。
|
12天前
|
Ubuntu 网络协议
在Ubuntu 18.04服务器上配置双网口以接入互联网
总结一下,配置双网口在Ubuntu 18.04服务器就像一场冒险游戏,你小心翼翼地从查看网络布局开始,铺设新线路,最后得到了通往互联网的双重通道。祝你在网络世界的冒险旅程中更上一层楼!
51 11
|
12天前
|
存储 弹性计算 固态存储
阿里云服务器配置怎么选择?根据用户类型及使用场景配置推荐
如何选择阿里云服务器配置?2025年全解析!个人用户可选68元/年的轻量应用服务器(2核2G、200M带宽),企业用户推荐199元/年的ECS通用算力型u1实例(2核4G、5M带宽)。针对不同需求,还有内存型、计算型、高主频型及GPU服务器等多规格实例。带宽选择需根据访问量,小流量应用3M即可,高流量建议10M起步。存储方面,系统盘40GB够用,数据盘按需选择ESSD或SSD云盘,确保I/O性能满足业务需求。阿小云为你整理最新攻略,助你高效选型!
|
12天前
|
存储 弹性计算 人工智能
阿里云服务器2核8G/4核16G/8核32G配置热门实例规格对比与选购指南
如果我们是计划购买2核8G/4核16G/8核32G配置的阿里云服务器,在阿里云活动中一般会有经济型e、通用算力型u1、通用型g7、通用型g8i和通用型g8y几种常见的实例规格可选,尽管这些实例在配置上相似,但它们在性能、价格以及适用场景上存在显著差异。本文将深入解析这些实例规格的性能特点、价格差异及适用场景,为用户在阿里云服务器购买时提供详实的参考依据。
|
15天前
|
弹性计算 固态存储 ice
阿里云服务器ECS内存型2核16G、4核32G和8核64G配置实例、费用和性能参数表
本文整理了2025年阿里云服务器租赁价格表,涵盖2核16G、4核32G和8核64G配置收费标准。CPU内存比为1:8,提供多种实例规格如ECS内存型r8i、通用算力型u1等。价格由CPU内存、公网带宽及系统盘组成,支持优惠折扣(年付6.7折起)。文中详细列出各配置参考价格、公网带宽与系统盘收费,并对比不同实例规格性能,如Intel Xeon和AMD EPYC处理器系列,帮助用户选择高性价比方案。具体价格以阿里云官网为准。
71 4
|
弹性计算 Shell Windows
阿里云学生专享ecs服务器体验及个人配置
阿里云学生优惠专享的云服务器个人使用体验
阿里云学生专享ecs服务器体验及个人配置
|
23天前
|
存储 缓存 网络协议
阿里云特惠云服务器99元与199元配置与性能和适用场景解析:高性价比之选
2025年,阿里云长效特惠活动继续推出两款极具吸引力的特惠云服务器套餐:99元1年的经济型e实例2核2G云服务器和199元1年的通用算力型u1实例2核4G云服务器。这两款云服务器不仅价格亲民,而且性能稳定可靠,为入门级用户和普通企业级用户提供了理想的选择。本文将对这两款云服务器进行深度剖析,包括配置介绍、实例规格、使用场景、性能表现以及购买策略等方面,帮助用户更好地了解这两款云服务器,以供参考和选择。
|
1月前
|
域名解析 人工智能 弹性计算
DeepSeek服务器繁忙解决方法:使用阿里云一键部署DeepSeek个人网站!
通过阿里云一键部署DeepSeek个人网站,解决服务器繁忙问题。学生用户可领取300元代金券实现0成本部署,普通用户则可用99元/年的服务器。教程涵盖从选择套餐、设置密码到获取百炼API-KEY的全流程,助您快速搭建专属大模型主页,体验DeepSeek、Qwen-max、Llama等多款模型,无需代码,最快5分钟完成部署。支持绑定个人域名,共享亲友使用,日均成本仅约1元。
133 10

热门文章

最新文章