IIS優(yōu)化為Web服務(wù)器減負(fù)

字號:

考試大微軟認(rèn)證站整理:
    打造基于IIS 6.0的站點(diǎn)是很多企業(yè)的首選,但是IIS相對于其他Web平臺不但對硬件的要求比較高,而且其性能不夠盡如人意。如果沒有強(qiáng)勁的硬件平臺,用IIS搭建的Web站點(diǎn)確實(shí)有些老牛破車的味道。另外,IIS保守的默認(rèn)設(shè)置讓這一切雪上加霜。如何在現(xiàn)有的硬件平臺上打造快捷的Web服務(wù)器呢?那就從IIS優(yōu)化,為Web減負(fù)開始。
    1、禁止多余的Web服務(wù)擴(kuò)展
    IIS6.0支持多種服務(wù)擴(kuò)展,有些管理員偷懶或者不求甚解,擔(dān)心Web運(yùn)行中出現(xiàn)解析錯誤,索性在建站時開啟了所有的Web服務(wù)擴(kuò)展。殊不知,這其中的有些擴(kuò)展比如“所有未知CGI擴(kuò)展”、“在服務(wù)器端的包含文件”等是Web運(yùn)行中根本用不到的,況且還占用IIS資源影響性能拖垮Web,甚至某些擴(kuò)展存在漏洞容易被攻擊者利用。因此,科學(xué)的原則是,用到什么擴(kuò)展就啟用什么擴(kuò)展。
    如果企業(yè)站點(diǎn)是靜態(tài)頁面,那什么擴(kuò)展都不要開啟。不過現(xiàn)在的企業(yè)站點(diǎn)都是交互的動態(tài)頁面比如asp、php、jsp等。如果是asp頁面,那只需開啟“Active Server Pages”即可。對于php、jsp等動態(tài)頁面IIS6.0默認(rèn)是不支持的需要進(jìn)行安裝相應(yīng)組件實(shí)現(xiàn)對這些擴(kuò)展的支持。不過,此時用不到的擴(kuò)展完全可以禁用。
    禁止Web服務(wù)擴(kuò)展的操作非常簡單,打開“IIS管理器”,在左窗格中點(diǎn)擊“Web服務(wù)擴(kuò)展”,在右側(cè)選擇相應(yīng)的擴(kuò)展,然后點(diǎn)擊“禁用”即可。
    2、刪除不必要的IIS擴(kuò)展名映射
    IIS默認(rèn)支持.asp、.cdx等8種擴(kuò)展名的映射,這其中除了.asp之外其他的擴(kuò)展幾乎用不到。這些用不著的擴(kuò)展會加重web服務(wù)器的負(fù)擔(dān),而且?guī)硪欢ǖ陌踩[患。比如.asa,.cer等擴(kuò)展名,就可以被攻擊者利用來獲得webshell。因?yàn)橐话愕腶sp系統(tǒng)都會限制asp文件的上傳,但如果沒有限制.asa或者.cer等擴(kuò)展名,攻擊者就可以更改文件后綴突破上傳限制,運(yùn)行.asa或者.cer的文件獲得webshell。
    刪除IIS擴(kuò)展名的操作是:打開IIS管理器,右鍵單擊“默認(rèn)Web站點(diǎn)”選擇“屬性”,點(diǎn)擊“主目錄”選項(xiàng)卡,然后點(diǎn)擊“配置”打開應(yīng)用程序窗口,最后根據(jù)自己的需要選擇不必要的應(yīng)用程序映射比如.shtml, .shtm, .stm等,然后點(diǎn)擊“刪除”即可。
    3、取消訪問記錄
    IIS6.0默認(rèn)開啟對于web的訪問記錄。當(dāng)開啟記錄功能后,IIS會事無巨細(xì)地忠實(shí)記錄所有的web訪問記錄。這些記錄文件的內(nèi)容是非常龐雜的,比如訪問時間、客戶端IP、從哪個鏈接訪問、 Cookies等,另外還包括 Method(方法), UserAgent(用戶代理)等。這些記錄不但占用大量的磁盤空間還大大地影響了web服務(wù)器的性能。有人做過評測,停止訪問記錄可以提升5%到8%的web性能。而且這些記錄對于一般用戶,特別是中小型的Web站點(diǎn)沒有什么用途,簡直太耗費(fèi)系統(tǒng)性能了,因此建議關(guān)閉它。
    取消訪問記錄的操作是:打開IIS管理器,定位到具體的web站點(diǎn),右鍵點(diǎn)擊選擇“屬性”,在“主目錄”選項(xiàng)卡下取消對“記錄訪問”的勾選即可。
    4、對訪問流量進(jìn)行限制
    默認(rèn)情況下IIS 6.0對于訪問量是沒有限制的,如果并發(fā)連接過大超過了Web的負(fù)載輕則發(fā)生網(wǎng)絡(luò)擁塞,重則導(dǎo)致服務(wù)器宕機(jī)。因此需要對用戶的訪問進(jìn)行限制,控制Web訪問的流量。
    打開“Internet信息服務(wù)”管理器,在其窗口右側(cè)點(diǎn)擊主機(jī)名前面的“+”號,依次定位到某個Web站點(diǎn)上。選中該Web站點(diǎn)右鍵單擊選擇“屬性”,在打開的屬性設(shè)置窗口中選中“性能”標(biāo)簽,將“啟用帶寬限制”復(fù)選框選中,在隨后被激活的“網(wǎng)絡(luò)使用”設(shè)置框中,指定你的網(wǎng)絡(luò)站點(diǎn)帶寬的具體數(shù)值。大家可以根據(jù)服務(wù)器的性能及其訪問量綜合考慮繼續(xù)設(shè)置。對于一般的企業(yè)站點(diǎn)將帶寬流量設(shè)置為1500kb/s就差不多了。同時在“網(wǎng)站連接”下可以進(jìn)行連接限制的設(shè)置,大家可以根據(jù)情況設(shè)置一個數(shù)值。完成以上設(shè)置后,IIS就只能使用其被授予的資源進(jìn)行Web服務(wù),杜絕了異常情況造成的服務(wù)器過載,為Web減負(fù)。
    5、讓W(xué)eb負(fù)載自由伸縮
    默認(rèn)情況下IIS是全負(fù)荷地為Web提供服務(wù)的,這在一定程度上加重了Web負(fù)擔(dān)。如何能夠自動地根據(jù)負(fù)載變化自動調(diào)節(jié)工作進(jìn)程呢?
    利用IIS 6.0的Web園,我們只需指定用于某個應(yīng)用程序池的工作進(jìn)程的數(shù)量就可以了實(shí)現(xiàn)各個Web站點(diǎn)之間的隔離。具體的配置步驟是:在“Internet信息服務(wù)”管理器中打開應(yīng)用程序池的“屬性”對話框,轉(zhuǎn)到“性能”頁,在“Web園”下面的“工作進(jìn)程數(shù)”輸入框中輸入進(jìn)程數(shù)量。當(dāng)服務(wù)器的負(fù)載較小,不需要額外的工作進(jìn)程時,IIS 6.0在一定的時間后(默認(rèn)20分鐘,可配置)自動縮減實(shí)際的工作進(jìn)程數(shù)量;如果負(fù)載變大,需要額外的工作進(jìn)程,IIS 6.0再次增加工作進(jìn)程數(shù)量。另外,還可以“啟用CUP監(jiān)視”,設(shè)置“CPU使用率”,“刷新CUP使用率值”以及“CPU使用率超過使用率是執(zhí)行的操作”,這些設(shè)置可以根據(jù)需要進(jìn)行設(shè)置。當(dāng)一切設(shè)置完成后這一切就交給IIS自動進(jìn)行,不需要管理員干預(yù)。
    6、配置應(yīng)用呈現(xiàn)池
    IIS可以支持多個Web服務(wù),特別是虛擬主機(jī)一臺服務(wù)器上有非常多的Web站點(diǎn)。如何才能做到各個站點(diǎn)之間相互獨(dú)立,不因某些Web站點(diǎn)出現(xiàn)故障而影響其他站點(diǎn)呢?為不同工作進(jìn)程指定應(yīng)用程序池是個很好的解決辦法。
    (1)、創(chuàng)建
    打開“IIS 管理器”中,展開本地計算機(jī),右鍵單擊“應(yīng)用程序池”,選擇“新建→應(yīng)用程序池”。在“應(yīng)用程序池名稱”框中,輸入新的應(yīng)用程序池名稱。如果點(diǎn)選選“將現(xiàn)有應(yīng)用程序池作為模板”,可以在“應(yīng)用程序池名稱”下來列表中選擇相應(yīng)的應(yīng)用程序池,最后單擊“確定”即可。
    (2)、指派
    在“IIS 管理器中”,右鍵單擊你要為其指派應(yīng)用程序池的站點(diǎn)然后單擊“屬性”。在該站點(diǎn)的屬性面板中“主目錄”選項(xiàng)卡,在“應(yīng)用程序池”下拉列表中選擇剛才創(chuàng)建的應(yīng)用程序池即可。如果所有的選項(xiàng)為灰色,單擊“創(chuàng)建”按鈕就可以輸入“應(yīng)用程序名”,然后在“應(yīng)用程序池”列表框中,選擇并指派網(wǎng)站的應(yīng)用程序池了。
    (3)、回收
    利用“回收”功能,可是設(shè)置如何恢復(fù)系統(tǒng)資源進(jìn)行IIS資源使用的靈活定制。打開“IIS 管理控制臺”,單擊“+”號依次“展開本地計算機(jī)→應(yīng)用程序池”。選擇你要回收的應(yīng)用程序池右鍵單擊選擇“屬性”,出現(xiàn)應(yīng)用程序池的屬性對話框,單擊“回收”選項(xiàng)卡在其下可以設(shè)置“進(jìn)程回收”、“內(nèi)存回收”等,所有這些設(shè)置大家根據(jù)實(shí)際需要進(jìn)行設(shè)置。
    總結(jié):通過上述IIS優(yōu)化措施,Web服務(wù)器就能輕裝上陣其性能將會有較大的提升。當(dāng)然,要從根本上改善Web性能,僅僅進(jìn)行軟設(shè)置是不夠的。另外,還需要進(jìn)行硬件改造,軟硬結(jié)合才是最完美的解決方案。