萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> IIS6、IIS7和IIS8各版本的差別是什麼?

IIS6、IIS7和IIS8各版本的差別是什麼?

   一、寫在前面

  目前市面上所用的IIS版本估計都是>=6.0的.所以我們主要以下面三個版本進行講解

  服務器版本   IIS默認版本

  server2003          6.0

  server2008          7.0

  server2012          8.0

  二、IIS6的請求過程

IIS6、IIS7和IIS8各版本的差別是什麼? 三聯

  由圖可知,所有的請求會被服務器中的http.sys組件監聽到,它會根據IIS中的 Metabase 查看基於該 Request 的 Application 屬於哪個Application Pool, 如果該Application Pool不存在,則創建之。否則直接將 Request 發到對應Application Pool 的 Queue中。

  每個 Application Pool 對應著一個Worker Process:w3wp.exe。在IIS Metabase 中維護著 Application Pool 和w3wp的映射。WAS(Web Administrative service)根據這樣一個mapping,將存在於某個Application Pool Queue的request 傳遞到對應的worker process(如果沒有,就創建這樣一個進程)。在 worker process 初始化的時候,加載ASP.NET ISAPI。

  同時,在w3wp.exe的內部,ASP.NET 是以 IIS ISAPI extension 的方式外加到 IIS(其實包括 ASP 以及 PHP,也都以相同的方式配置),ASP.NET ISAPI進而加載CLR。從而為ASP.NET Application創建一個托管的運行環境,在CLR初始化的使用會加載兩個重要的dll:AppManagerAppDomainFactory和ISAPIRuntime。通過AppManagerAppDomainFactory的Create方法為Application創建一個Application Domain;通過ISAPIRuntime的ProcessRequest處理Request,進而將流程拖入到ASP.NET Http Runtime Pipeline的范疇

  注:ISAPI,意思:互聯網服務器應用程序接口(Internet Server Application Program Interface).

  三、 IIS7的工作過程

  1.HTTP.sys監聽攔截客戶端請求開始處理。

  2.HTTP.sys通過配置信息聯系WAS獲取相關信息。

  3.WAS 向配置存儲中心請求配置信息。applicationHost.config。

  4.WWW 服務接受到配置信息,配置信息指類似應用程序池配置信息,站點配置信息等等。

  5.WWW 服務使用配置信息去配置 HTTP.sys 處理策略。

  6.WAS為這個請求對應的應用程序池(Application Pool)開啟W3WP Worker Process。

  W3WP Worker Process處理以後,將Response返回給HTTP.sys。

  客戶端接受到Response內容。

  注意:我們稱3-6為初始化配置的過程,配置完畢之後,以後的請求就直接到第七步.當然IIS被重啟了,就重頭來過.

  三、IIS7程序池托管管道模式

  W3WP.exe 進程在IIS7中如何工作, 取決於IIS 7 的應用程序池托管管道模式是什麼,IIS7目前有2個模式: 經典模式和集成模式

  經典的意思大家都知道,就是一個一直以來所使用的方式(便於大家記憶),IIS7其中經典模式的W3WP.exe工作方式就是IIS6的處理方式.

  即: IIS ISAPI extension,也就是 aspnet_isapi.dll

  IIS7集成模式是一個偉大的改進,讓IIS集成了.NET功能(不在依靠之前IIS版本的aspnet_ISPAI.DLL),也就是說所有的HTTP Request請求都要經過.NET來處理(包括html, php等),也因為 .NET 的諸多功能已經成為 IIS 7 的一部份.性能上也得到了提升.

  四、IIS8和IIS7有哪些不一樣的地方

  1. IIS 8.0 只能運行於>=Windows Server 2012 and Windows 8的平台上;

  2. IIS 8.0 Application 的初始化被包括在IIS 8.0中. IIS 7.5 Application 初始化(RC) 被作為一個外帶模塊;

  3. IIS 8.0 管理工具已經為 ASP.net 4.5功能更新 . IIS 7.5中還沒有;

  4. IIS 8.0 集成了SSL 認證支持. IIS 7.5 還沒有;

  5. IIS 8.0 CPU 節流已經得到更新且包括額外的節流選項,而 IIS 7.5還沒有變化;

  6. IIS 8.0 集成了動態IP 地址限制功能

  7. IIS 8.0 集成了FTP嘗試登陸限制功能.

  8. IIS 8.0 在NUMA 上的多核擴展;

copyright © 萬盛學電腦網 all rights reserved