IIS 5.1/6.0 内幕


跟我一起学 Visual Studio 2005 IIS 5.1/6.0 内幕 徐长龙 vsts_china@hotmail.com Visual Studio 2005 系列课程 (12) 前提 • 了解基本的IIS知识 • 有ASP或ASP.NET编程的基础知识 •Level:300 议题 •IIS 概述及历史 • IIS 5.1 和 IIS 6 的结构 IIS 概述及历史 • IIS 1 – 1996年2月 – Windows NT 3.51 Server – 对三个通用Internet协议的支持(HTTP,FTP,Gopher) – CGI(Common Gateway Interface)的支持 – 与Windows NT 平台集成(服务) – 虚拟服务器 – 虚拟目录 –Internet 服务器 API (ISAPI),允许使用高级语言(如C++)编写动态 Web应用程序并将其合并到HTML页中的应用程序编程接口 –Internet 数据库连接器(Internet Database Connector,IDC) – 支持基本认证 – 支持SSL 第1版 IIS 概述及历史 • IIS 2 –Windows NT 4 Server 的一个组件 – 新的增强的 Windows 95 式的GUI – 将IIS集成到Windows NT 安装程序 – 支持主机头名称 – 增强的日志特性 – 用于Internet数据查询(Internet Data Query,IDQ) –HTML 管理器 – 密钥管理器 – 索引服务器 IIS 概述及历史 • IIS 3 – 1996年12月 – 最大的意义:服务端WEB脚本引擎(ASP) –ActiveX组件技术 – 两种脚本语言(VBScript和JScript,实际上是Netscape的 JavaScript) –ASP支持开放式数据库连接(ODBC)和ActiveX数据对象 (ADO)与数据库连接 –Microsoft事务管理器(MTS) – Microsoft Visual InterDev – Microsoft FrontPage 97 Server Extensions IIS 概述及历史 • IIS 4 – 1998年3月 – Windows NT 4 Option Pack 3 – Microsoft 事务服务器(MTS)第2版 – Microsoft 消息队列服务器(MSMQ)第1版 – 索引服务器第2版 – Microsoft 证书服务器第1版 – IE 4.01(它最终帮助了微软赢得了与Netscape之间的浏览器战争) – 个人WEB服务器 (PWS) – Microsoft 管理控制台(MMC)第1版 – SSL 第3版(128位加密) – 配置数据库 – 确实可行的主机头(对HTTP 1.1的支持) – 对SMTP和NNTP的支持 IIS 概述及历史 • IIS 5 – Windows 2000的组件 – 名称的变化(Internet 信息服务) – 名为“缓冲池进程”的新应用程序模型 – Windows 2000 的目录服务集成 – 简化安装和管理IIS工作的新向导 – 支持WEB分布式创作和版本控制 IIS 概述及历史 • IIS 5.1 – IIS 5 的改进版 – Windows XP Professional 桌面平台 议题 • IIS 概述及历史 •IIS 5.1 和 IIS 6 的结构 IIS 结构-IIS 4之前 • IIS 4 之前 – 整体式:所有的操作都基于进程内执行(in-process execution) – 使用ISAPI和C程序编写DLL,然后被加载到主要的IIS WEB服务器进程(inetinfo.exe)并在这个进程中运行 浏览器客户 ISAPI 应用程序 WWW 服务 ISAPI 筛选器 内容 inetinfo.exe IIS 结构-IIS 4之前 •ISAPI 是为IIS 1开发的,用来在Windows NT 中代 替UNIX Web服务器的公共网关接口(CGI) •CGI使用一种进程外(out-of-process)执行模型 CGI 进程 WEB 服务器进程 HTTP 端口监控程序 客户端请求 IIS 结构-IIS 4之前 • IIS 3 是一个名为asp.dll的ISAPI扩展实现 的,并没有改变IIS的结构。 • 工作不正常的ASP应用程序可能会关闭整个 服务器 • 提高了WEB应用程序的性能 • 降低了可靠性 IIS 结构-IIS 4 • IIS 4是第一个在内部结构上发生重大变化的IIS版本 –Web应用程序的运行方式 • 进程隔离(process isolation) • 保留ISAPI和ASP的性能优点,同时提供CGI的稳定性 – IIS配置信息的存储方式 WWW服务 应用程序 应用程序 应用程序 应用程序 进程内 进程外 inetinfo.exe IIS 结构-IIS 4 • 进程隔离模式的优点 – 崩溃的进程外应用程序对在服务器上运行的其他应用程序没有影 响 – 进程外应用程序可以在不依赖于服务器上的其他应用程序的情况 下停止和重新启动,不会影响其他应用程序,简化了IIS上的应用 程序的维护工作 – 可以将进程外应用程序配置为在出现故障之后自动重新启动 • 进程隔离的缺点 – 进程外应用程序的运行速度可能比进程内应用程序慢很多 – 进程外应用程序不能使用内置的IIS管理对象来访问IIS配置数据库 属性 – 进程外应用程序占用比进程内应用程序更多的内存资源 IIS 结构-IIS 4 • 进程外应用程序是由MTS的一个名为WEB应用程序管理器 (Web Application Manager,WAM)的组件负责使用IIS应用 程序能够在进程外运行。 WWW服务 WAM WAM WAM WAM inetinfo.exe 浏览器客户 WAM 定位器 mtx.exe mtx.exe MTSMTS软件包 帐户:IWAM_计算机名 IIS 结构-IIS 4 • IIS管理服务 – IIS 4的一个基本组件 – 其他所有IIS服务的管理器 •WWW服务/W3SVC •FTP •SMTP •NNTP – 维护配置数据库 IIS 结构-IIS 5 • 又一次更改了IIS的结构 • IIS 4的进程外应用程序不能与在同一台计算机上的其他任 何应用程序通信 • IIS 5提供了三个不同级别的应用程序保护 – 低(IIS进程)与IIS的版本1~3最初的单一结构一样,作为WEB服 务器进程(inetinfor.exe)的一部分在进程内运行 – 中(共用的)作为一个单独的缓冲池进程在inetinfo.exe进程外运 行,也就是说,它作为名为dllhost.exe的新COM+宿主进程内部运 行的几个应用程序之一 – 高(独立的)在自己的隔离dllhost.exe进程中运行 IIS 结构-IIS 5 WWW服务 应用程序 应用程序 应用程序 应用程序 应用程序 应用程序 应用程序 inetinfo.exe dllhost.exe dllhost.exe dllhost.exe 缓冲进程 独立进程 进程内 进程外 IIS 结构-IIS 5 IIS 结构-IIS 6 • IIS 6与IIS 5之间的区别 –HTTP请求的处理已经从inetinfo.exe进程直接移动到了 内核中,以便获得更高的性能 – 支持两种新的应用程序隔离模型: •“工作进程隔离模型”:全新的模型,它将用户开发的所有应用 程序代码与核心IIS服务完全隔离 • IIS 5“隔离模型”:为IIS 5设计的早期应用程序向后兼容 – 多个应用程序池的支持,可以单独配置每一个池 – 重新改造了WWW服务(W3SVC),包括了一个新的配置 和进程管理部分,名为Web管理服务(WAS) – 其他增强的特性:处理器相似性、运行状况监视、Web 园、请求式启动、空闲超时、快速故障保护、工作进 程回收、XML配置数据库等 IIS 结构-IIS 6 • 内核模式HTTP侦听程序(http.sys) – 以前版本的IIS的结构是围绕核心inetinfo.exe进程建立的 W3SVC MSFTPSVC NNTPSVC SMTPSVC IIS 管理服务 侦听程序路由器 IIS 6 之前的版本 HTTP请求 inetinfo.exe IIS 6 HTTP.SYS 浏览器客户 传入的HTTP请求 队列 应用程序池 内核模式 用户模式 IIS 结构-IIS 6 •HTTP.SYS – 内核模式HTTP侦听程序 – 设备驱动程序 – Windows Server 2003的TCP/IP网络子系统的一部分,从结构上 说,它是TCP之上的一个网络驱动程序 – 侦听想要连接到IIS上运行的Web站点使用的IP地址和端口号的 HTTP请求 – 不再属于IIS – 主要用途是供IIS用来处理HTTP请求 – 还实现了其他几项功能: • 在内核模式中缓存HTTP请求 • 管理TCP连接 • 实现连接限制和超时 • 管理带宽节流 • 处理WWW发布服务的基于文本的日志 IIS 结构-IIS 6 • HTTP.SYS的好处 – 提高了IIS性能 – 提高了IIS的可靠性 – 提高了IIS的响应性 IIS 结构-IIS 6 • IIS管理服务 – HTTP侦听和路由功能已经从IIS6的主要进程inetinfo.exe中删除 – 发生的变化是:现在处理IIS所执行的与Web无关的所有工作,换 句话说IIS管理服务仍然处理FTP,SMTP,NNTP,但不处理HTTP •Web管理服务(WAS) – 管理站点 • IIS 6中,IIS管理服务不再与WWW服务直接相关,这一点 的一个重要结果就是不再允许进程内Web应用程序 IIS 结构-IIS 6 •Web管理服务(WAS) – 负责IIS 6上的Web站点的创建和操作,包含两个组件: – 配置管理器 • 负责与配置数据库进行交互,从而在需要时存储或检索Web站点的配 置信息 – 应用程序池管理器 • 负责管理与IIS应用程序池相关联的工作进程,这些工作包括启动、停 止、重新启动和回收工作进程,并监视它们的运行状况,维护它们的 配置以及和它们与内核模式队列相关联的http.sys进行交互的方式 HKLM\System\CurrentControlSet\Services\W3SVC 选择它下面的Parameters键并打开名为ServiceDll的值 %systemroot%\System32\inetsrv\iisw3adm.dll IIS 结构-IIS 6 • IIS 6 应用程序模式 – 工作进程隔离模式 •IIS 6的主要工作模式 – IIS 5隔离模式 •保持与专门为IIS 5平台开发的应用程序的向后兼容 性 IIS 结构-IIS 6之工作进程隔离模式 配置管理器 应用程序 池管理器 Web管理服务 (WAS) 工作进程 w3sp.exe 工作进程 w3sp.exe Web 园 多个w3sp.exe 单个应 用程序 ISAPI 扩展 ISAPI 筛选器 多个应 用程序 ISAPI 扩展 ISAPI 筛选器 单个应 用程序 ISAPI 扩展 ISAPI 筛选器 Web 服务器 管理 inetinfo.exe 内存中配 置数据库 FTP SMTP NNTP 用户模式 内核模式 侦听程序 HTTP.SYS 响应缓存 发送者 请求 请求 IIS 结构-IIS 6之IIS 5 隔离模式 内存中配 置数据库 FTP SMTP NNTP W3svc.dll 进程内 应用程序 ISAPI 筛选器 inetinfo.exe Web管理服务 (WAS) 配置管理器 应用程序 池管理器 用户模式 内核模式 侦听程序 HTTP.SYS 响应缓存 发送者 请求 工作进程 DLLHOST.EXE ISAPI 扩展 DLLHOST.EXE ISAPI 扩展 IIS 结构-IIS 6 • IIS 6 应用程序隔离模式的对应进程比较 dllhost.exe无进程外ISAPI扩展 inetinfo.exew3sp.exe进程内ISAPI扩展 inetinfo.exew3sp.exeISAPI筛选器 无w3sp.exe工作进程 WASWAShttp.sys配置 inetinfo.exeinetinfo.exe配置数据库 inetinfo.exeinetinfo.exeSMTP inetinfo.exeinetinfo.exeNNTP inetinfo.exeinetinfo.exeFTP http.syshttp.sysHTTP IIS 5隔离模式工作进程隔离模式IIS特性 IIS 结构-IIS 6 • IIS 6的其他特性 – 处理器相似性 •Web园上非常有用。可以将Web园中的不同的工作进程 (w3sp.exe)分配给不同的单独的CPU • 大大提高性能、可用性和可靠性 IIS 结构-IIS 6 • IIS 6的其他特性 – 请求式启动 • 在接收到第一个对应用程序池中某个应用程序的HTTP请求时 启动工作进程,以便处理该应用程序池 – 空闲超时 • 如果处理一个应用程序池的工作进程已经空闲了一段指定的时 间,那么WAS可以自动关闭这个进程,从而节省计算机上宝贵 的内存 – 回收 • 错误的代码导致内存泄漏或冲突,在以前的版本中,必须定期 重新启动Web服务器来保持应用程序的正常运行,在IIS6中可 以通过回收与池相关联的工作进程而不是手工重新启动服务器 来完成 IIS 6.0 Demo • DEMO – 按 (Ctrl + H 在窗口模式和全屏模式之间切换) 小结 • IIS概述及历史 • IIS 6的特性及结构 – http.sys内核侦听 – 内核模式排队 – IIS应用程序模式(工作进程隔离模式和IIS 5隔离模式) – IIS管理服务 –Web管理服务(WAS) – 工作进程 – 应用程序池 – 处理器相似性 – 请求式启动 – 空闲超时 – 回收 – 快速故障保护 获取更多MSDN资源 •MSDN中文网站 http://www.microsoft.com/china/msdn •MSDN中文网络广播 http://www.msdnwebcast.com.cn •MSDN Flash http://www.microsoft.com/china/newsletter/case /msdn.aspx •MSDN开发中心 http://www.microsoft.com/china/msdn/Develope rCenter/default.mspx Q&A • 如需提出问题,请单击“提问”按钮并在随后 显示的浮动面板中输入问题内容。一旦完 成问题输入后,请单击“提问”按钮。
还剩36页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 6 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

aweifly

贡献于2015-07-14

下载需要 6 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf