国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Web服務(wù)器的IIS架構(gòu)解析

2017-07-10 05:53楊龍
電腦知識(shí)與技術(shù) 2017年14期
關(guān)鍵詞:監(jiān)聽線程隊(duì)列

楊龍

摘要:隨著Internet網(wǎng)絡(luò)資源的不斷豐富,Web服務(wù)也逐漸演變成為一種方便快捷的獲取網(wǎng)絡(luò)資源的方式。IIS6.0因其部署簡(jiǎn)單、可靠性及安全性高被廣泛應(yīng)用于Web服務(wù)器中。該文通過對(duì)IIS6.0系統(tǒng)架構(gòu)的介紹,闡明了IIS6.0的工作原理及性能。

關(guān)鍵詞:Web服務(wù)器;IIS服務(wù);IIS6.0

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)14-0035-02

互聯(lián)網(wǎng)信息服務(wù)(Internet Information Service)簡(jiǎn)稱IIS,它是由Microsoft公司提供的一種基于Windows的基本服務(wù)。由于IIS能夠很好的與Windows NT系列產(chǎn)品集成在一起,并且提供快速可擴(kuò)展的Internet服務(wù),具有支持多腳本語(yǔ)言、簡(jiǎn)單易用等特點(diǎn),所以大多數(shù)中小型規(guī)模的Web服務(wù)器均采用IIS服務(wù)架構(gòu)。

1概述

Microsoft公司在不同時(shí)期推出了不同的IIS版本,且個(gè)版本之間存在著一定的差異,本文將以IIS6.0為例全面解析IIS的架構(gòu)及安全機(jī)制。

一直以來,IIS脆弱的安全性不斷被業(yè)內(nèi)所詬病,為了能夠更好的提高IIS的安全性,填補(bǔ)遠(yuǎn)程執(zhí)行代碼漏洞,IIS6.0采用了全新的內(nèi)核架構(gòu)。如圖1所示,IIS6.0的內(nèi)核體系由HTTP.sys、W3SVC和W3Core三個(gè)組件構(gòu)成。

2 HTTP.sys

2.1 HTTP.sys的安全可靠性

HTTP.sys作為驅(qū)動(dòng)程序運(yùn)行在Windows的內(nèi)核模式下,主要由偵聽模塊、應(yīng)答緩存模塊、請(qǐng)求隊(duì)列模塊和響應(yīng)發(fā)送模塊構(gòu)成。HTTP.sys在TCP/IP協(xié)議的基礎(chǔ)上對(duì)用戶發(fā)出的http請(qǐng)求進(jìn)行偵聽,并將該請(qǐng)求轉(zhuǎn)發(fā)給相應(yīng)的Web應(yīng)用程序處理,最終由HTTP.sys將處理結(jié)果發(fā)回給用戶。HTTP.sys的引入能夠很好的提高IIS6.0的穩(wěn)定性和可靠性。在IIS6.0之前的版本是由Inefinfo.exe負(fù)責(zé)監(jiān)聽用戶的http請(qǐng)求的,同時(shí)在Inetinfo.exe中要運(yùn)行一部分的用戶代碼,這種監(jiān)聽模式很容易受到不穩(wěn)定的用戶代碼的影響,而導(dǎo)致Inetinfo.exe的崩潰,IIS極為不穩(wěn)定。在IIS6.0中,HTTP.sys并不需要執(zhí)行用戶代碼,它作為系統(tǒng)驅(qū)動(dòng)程序始終運(yùn)行在穩(wěn)定的狀態(tài),保證了IIS6.0的穩(wěn)定性和可靠性。

2.2 HTTP.sys的http請(qǐng)求響應(yīng)過程

HTTP.sys中的監(jiān)聽模塊始終處于http請(qǐng)求監(jiān)聽狀態(tài),用戶通過瀏覽器發(fā)送一個(gè)對(duì)部署在IIS中的Web應(yīng)用程序的http請(qǐng)求,該請(qǐng)求數(shù)據(jù)由TCPIP.sys不作處理的轉(zhuǎn)發(fā)給HTTP.sys。監(jiān)聽模塊對(duì)收到的http進(jìn)行請(qǐng)求分析,并根據(jù)類型將其放入不同的Web應(yīng)用程序請(qǐng)求隊(duì)列中。HTTP.sys通過數(shù)據(jù)配置表記錄URL與應(yīng)用程序池之間的對(duì)應(yīng)關(guān)系,換言之,HTTP.sys注冊(cè)了IIS6.0中的每一個(gè)應(yīng)用,并通過工作進(jìn)程中的句柄標(biāo)識(shí)應(yīng)用程序所需要的一個(gè)或多個(gè)命名空間。因此,HTYP.sys在處理http請(qǐng)求隊(duì)列中的請(qǐng)求時(shí),就能夠準(zhǔn)確快速的將請(qǐng)求數(shù)據(jù)包傳遞給Web應(yīng)用程序。應(yīng)用程序處理完http請(qǐng)求后,HTTP.sys會(huì)將最終的處理結(jié)果返回給用戶。

2.3 HTTP.sys的數(shù)據(jù)緩存

HTTP.sys還具有數(shù)據(jù)緩存功能,用戶頻繁對(duì)服務(wù)器上的某部分資源進(jìn)行http請(qǐng)求訪問時(shí),HTPP.sys會(huì)對(duì)該http請(qǐng)求的返回結(jié)果進(jìn)行保存。當(dāng)用戶再次進(jìn)行該資源的http請(qǐng)求時(shí),HTTP.sys會(huì)將保存下來的請(qǐng)求結(jié)果直接返回給用戶,這樣可以極大的節(jié)省系統(tǒng)資源,提高請(qǐng)求響應(yīng)速度。

3W3SVC

在IIS6.0中W3SVC已從Inetinfo.exe中分離出來,作為一個(gè)獨(dú)立的進(jìn)程運(yùn)行在IIS服務(wù)中。W3SVC主要負(fù)責(zé)根據(jù)配置數(shù)據(jù)創(chuàng)建相應(yīng)的W3Core(工作線程)并對(duì)其進(jìn)行監(jiān)控,Web網(wǎng)站應(yīng)用就運(yùn)行在這些工作線程中。W3SVC中不會(huì)運(yùn)行任何第三方代碼,因此W3SVC總是處于穩(wěn)定的運(yùn)行狀態(tài),不會(huì)受到Web應(yīng)用故障的影響,基于這一策略Web服務(wù)器就能很好的對(duì)Web應(yīng)用進(jìn)行監(jiān)聽并根據(jù)配置數(shù)據(jù)采取相應(yīng)措施。

3.1工作線程的監(jiān)控

W3SVC可以對(duì)所創(chuàng)建的工作線程進(jìn)行監(jiān)控:空閑超時(shí)監(jiān)控,當(dāng)某一線程長(zhǎng)時(shí)間處于空閑狀態(tài),且空閑時(shí)長(zhǎng)超過設(shè)定時(shí)長(zhǎng),W3SVC會(huì)將其關(guān)閉;請(qǐng)求隊(duì)列限制,http請(qǐng)求隊(duì)列的請(qǐng)求書超過設(shè)定上限后,W3SVC會(huì)對(duì)相應(yīng)的http請(qǐng)求進(jìn)行限制;監(jiān)控CPU,如果某線程的CPU使用率過高超過上限,W3SVC會(huì)根據(jù)IIS配置信息采取相應(yīng)措施。

3.2 Web應(yīng)用程序的監(jiān)控

W3SVC還可對(duì)應(yīng)用程序池中的Web應(yīng)用程序狀況進(jìn)行監(jiān)控:W3SVC會(huì)在設(shè)定的時(shí)間間隔內(nèi)對(duì)Web應(yīng)用程序進(jìn)行Ping操作,以獲取其運(yùn)行狀態(tài);如果在某一指定時(shí)間內(nèi),一定數(shù)目的工作進(jìn)程發(fā)生失敗,則W3SVC會(huì)進(jìn)行失敗保護(hù)操作,并禁用該應(yīng)用程序池;W3SVC創(chuàng)建的工作進(jìn)程必須在設(shè)定的時(shí)間內(nèi)開啟或關(guān)閉。

4W3Core

4.1 W3Core的安全性

W3Core又被稱為工作進(jìn)程(Work Process)或W3WP.exe。W3Core是在一個(gè)完全隔離的工作模式下運(yùn)行的,在該工作模式下每一個(gè)Web應(yīng)用不會(huì)受到其他Web應(yīng)用的相互影響,同時(shí)也不會(huì)對(duì)HTYP.sys造成影響,同時(shí)W3Core的所有Web應(yīng)用實(shí)例都可以在一個(gè)有權(quán)限限制的“網(wǎng)絡(luò)賬戶”下運(yùn)行,通過對(duì)W3Core這兩方面的改進(jìn),IIS6.0有效地提高了可靠性和安全性。

4.2 W3Core的性能

在早些的IIS版本中,用戶的http請(qǐng)求是由WWW服務(wù)轉(zhuǎn)發(fā)給Web應(yīng)用程序的,這種請(qǐng)求處理過程需要經(jīng)過多次傳遞和模式轉(zhuǎn)換,這增大了系統(tǒng)的開銷,并且對(duì)IIS的性能影響也很大。在IIS6.0中,WWW服務(wù)作為一個(gè)獨(dú)立的組件(W3Core)實(shí)現(xiàn)處理用戶請(qǐng)求的功能,W3SVC僅僅是對(duì)W3Core進(jìn)行創(chuàng)建和監(jiān)控,并不對(duì)用戶http請(qǐng)求進(jìn)行處理,請(qǐng)求隊(duì)列中的用戶請(qǐng)求最終是由W3Core所管理的Web應(yīng)用程序處理,這就縮短了請(qǐng)求過程,減少了轉(zhuǎn)發(fā)次數(shù),提高了IIS的性能。

5結(jié)束語(yǔ)

隨著IIS的不斷發(fā)展,其性能及安全性也在不斷提高。深入細(xì)致的了解和學(xué)習(xí)IIS內(nèi)部系統(tǒng)架構(gòu)有助于將其更好的運(yùn)用于Web服務(wù)器建設(shè)中,能夠幫助我們更合理、安全的構(gòu)建中小型企業(yè)Web服務(wù)器,對(duì)互聯(lián)網(wǎng)Web服務(wù)具有一定的推動(dòng)發(fā)展作用。

猜你喜歡
監(jiān)聽線程隊(duì)列
千元監(jiān)聽風(fēng)格Hi-Fi箱新選擇 Summer audio A-401
隊(duì)列里的小秘密
在隊(duì)列里
豐田加速駛?cè)胱詣?dòng)駕駛隊(duì)列
網(wǎng)絡(luò)監(jiān)聽的防范措施
淺談linux多線程協(xié)作
應(yīng)召反潛時(shí)無(wú)人機(jī)監(jiān)聽航路的規(guī)劃
局域網(wǎng)監(jiān)聽軟件的設(shè)計(jì)
基于上下文定界的Fork/Join并行性的并發(fā)程序可達(dá)性分析*
Linux線程實(shí)現(xiàn)技術(shù)研究