IIS 請求主要模塊
當客戶端向 IIS 發出 HTTP 請求時,會有不少事情發生。 有許多內核模式和本機模式組件,用於將請求路由到最終響應請求的 W3WP 進程。
Component |
Description |
HTTP.sys |
Kernel level HTTP/HTTPS protocol listener |
W3SVC |
World Wide Web Publishing Service – User level listener adapter for HTTP.sys |
WAS |
Windows Process Activation Service – Worker Process (W3WP) manager |
W3WP |
IIS Worker Process -> Application Pool |
Component |
Logs are written to |
HTTP.sys |
C:\Windows\System32\LogFiles\HTTPERR |
W3SVC |
System Event Viewer |
WAS |
System Event Viewer |
W3WP |
System Event Viewer and IIS Logs in C:\intepub\logs\LogFiles\W3SVC* |
HTTP.sys
http.sys 偵聽來自網絡的 HTTP 請求,將它們傳遞到 IIS 並返回響應。 它是一種能夠從命令行中止和啓動的服務。
"NET STOP HTTP" 中止 HTTP 服務和 "NET START HTTP" 啓動 HTTP 服務。
咱們可使用 NETSH HTTP 修改 http.sys 設置,以下所述。 NETSH HTTP 命令更新此處找到的 http.sys 註冊表設置。 當您修改 http.sys 設置時,您須要經過運行,STOP STOP HTTP 和而後 NET START HTTP 回收 HTTP 偵聽器,如前所示。
*注意:不要在實時生產機器上回收 HTTP 偵聽器,除非能夠接受某些停機時間。
W3SVC(World Wide Web Publishing Service)
W3SVC 是 HTTP.sys 偵聽器的適配器。能夠從服務管理控制檯中止和啓動 W3SVC 服務。
W3SVC 負責配置 HTTP.sys 和 WWW 性能計數器。
這裏能夠用 "NET STOP W3SVC" 和 "NET START W3SVC" 中止和啓動 W3SVC 服務。
WAS(Windows Process Activation Process)
WAS 管理應用程序池配置和工做進程(W3WP)。 基本上,WAS 收集全部配置文件,如圖下圖所示,並建立一個有效的配置並將其存儲在
C:\inetpub\temp\appPools 目錄中。(注:inetpub 是 windows 操做系統中 IIS web 服務器的主目錄,用戶開啓了 IIS 功能,因此纔有了這個文件夾)。
W3WP(IIS Worker Process)
應用程序池 和 W3WP 進程之間的區別或關係是什麼? 正如這裏所強調的,應用程序池是被路由到一個或多個工做進程的一組URL。 您能夠有一個運行多個網站的單個 W3WP 進程,但這使它更難排除故障。 所以,在網站和應用程序池之間有1對1映射。
w3wp 工做進程
Application Pool
Web Site
從上圖中可看出,這兩個站點設置了不一樣的 Application Pool,在應用進程中 w3wp 與 Application Pool 是一一對應關係。
總結
您能夠了解 IIS 體系結構的不一樣組件,每一個組件都有本身的管理方式,每一個組件在遇到問題或禁用時會作出不一樣的響應。 每一個將錯誤日誌寫入不一樣的位置以供分析和審覈。 每一個組件須要對於接收有效響應的請求是健康和功能的。
最上面那張圖說明了一個 HTTP 向 W3WP 進行發出請求的過程。
參考文章: