web 應用程式與 iis 6.0 整合技術探討

38
Web Web 應應應應應 應應應應應 IIS 6.0 IIS 6.0 應應應應應應 應應應應應應 應應應應應應應應應 應應應應應應應應應 應應應應 應應應 應應應應 應應應

Upload: asher-mcgee

Post on 03-Jan-2016

106 views

Category:

Documents


0 download

DESCRIPTION

Web 應用程式與 IIS 6.0 整合技術探討. 恆逸資訊教育訓練處 資深講師 高光弘. 大綱. IIS 6.0 架構 IIS 6.0 應用程式隔離模式 IIS 6.0 強化的新功能 穩定性 效能 管理方式 安全性 和 ASP.NET 整合的能力. Web Garden. 應用程式集區 1. 應用程式集區 2. INETINFO. WAS. W3WP.EXE. W3WP.EXE. W3WP.EXE. W3WP.EXE. W3WP.EXE. W3WP.EXE. DLLHOST.exe. ASP.NET ISAPI. - PowerPoint PPT Presentation

TRANSCRIPT

WebWeb 應用程式與應用程式與IIS 6.0IIS 6.0 整合技術探討整合技術探討

恆逸資訊教育訓練處恆逸資訊教育訓練處資深講師 高光弘資深講師 高光弘

大綱大綱 IIS 6.0 IIS 6.0 架構架構 IIS 6.0 IIS 6.0 應用程式隔離模式應用程式隔離模式 IIS 6.0 IIS 6.0 強化的新功能強化的新功能

穩定性穩定性 效能效能 管理方式管理方式 安全性安全性 和和 ASP.NETASP.NET 整合的能力整合的能力

DLLHOST.exeDLLHOST.exe

ISAPIISAPIExtensionsExtensions(ASP, etc.)(ASP, etc.)

ISAPI FiltersISAPI Filters

metabasemetabase

IIS 6.0 IIS 6.0 架構架構IIS 5.0 IIS 5.0 到 到 IIS 6.0 IIS 6.0 的轉變的轉變

TCP/IPTCP/IP

INETINFOINETINFO

ASP.NETASP.NETISAPIISAPI

Aspnet_wp.exeAspnet_wp.exe

CLR App DomainCLR App Domain

CLR App DomainCLR App Domain

CLR App DomainCLR App Domainmetabasemetabase

INETINFOINETINFO W3WP.EXEW3WP.EXE

應用程式集區應用程式集區 11

ASP.NET ISAPIASP.NET ISAPI

CLR App DomainCLR App Domain

CLR App DomainCLR App Domain

W3WP.EXEW3WP.EXE

ISAPIISAPIExtensionsExtensions(ASP, etc.)(ASP, etc.)

ISAPI FiltersISAPI Filters

應用程式集區應用程式集區 22

W3WP.EXEW3WP.EXE

ASP.NET ISAPIASP.NET ISAPI

CLR App DomainCLR App Domain

CLR App DomainCLR App Domain

W3WP.EXEW3WP.EXE

ASP.NET ISAPIASP.NET ISAPI

CLR App DomainCLR App Domain

CLR App DomainCLR App Domain

W3WP.EXEW3WP.EXE

ASP.NET ISAPIASP.NET ISAPI

CLR App DomainCLR App Domain

CLR App DomainCLR App Domain

Web GardenWeb Garden

W3WP.EXEW3WP.EXE

ISAPIISAPIExtensionsExtensions(ASP, etc.)(ASP, etc.)

ISAPI FiltersISAPI Filters

WASWAS

Co

nfi

g M

gr

Co

nfi

g M

gr

Pro

ce

ss

Mg

rP

roc

es

s M

gr

HTTP.SYSHTTP.SYS Namespace MapperNamespace Mapper

HTTP EngineHTTP Engine

ResponseResponseCacheCache

Req

Qu

eue

Req

Qu

eue

Req

Qu

eue

Req

Qu

eue

Req

Qu

eue

Req

Qu

eue

Send ResponseSend Response

IIS 6.0 IIS 6.0 主要架構成員主要架構成員 IISIIS管理服務 管理服務 (InetInfo.exe)(InetInfo.exe)

提供提供 IISIIS管理工作管理工作、、SMTPSMTP、、NNTPNNTP、、FTPFTP等服務等服務 WWW WWW 管理服務 管理服務 (WAS)(WAS)

工作處理序管理工作處理序管理 組態管理組態管理

HTTP.sysHTTP.sys 負責處理負責處理RequestRequest 提供提供CacheCache、、QueueQueue等功能等功能

工作處理序 工作處理序 (W3WP.exe)(W3WP.exe)

IIS IIS 管理服務管理服務InetInfo.exeInetInfo.exe 主要工作主要工作

管理管理 MetabaseMetabase 提供非提供非 HTTPHTTP 的相關服務的相關服務

SMTP SMTP 簡易郵件傳送通訊協定服務簡易郵件傳送通訊協定服務 NNTP NNTP 網路新聞傳輸通訊協定服務網路新聞傳輸通訊協定服務 FTP FTP 檔案傳輸通訊協定服務檔案傳輸通訊協定服務

IIS IIS 管理服務不執行任何管理服務不執行任何 WebWeb 應用程式應用程式 確保 確保 Web server Web server 可靠性可靠性 應用程式錯誤無法影響應用程式錯誤無法影響 Web serverWeb server

WWW ServiceWWW Service

主要工作主要工作 設定 設定 HTTP.sysHTTP.sys 讀取並監視 讀取並監視 Metabase Metabase 設定改變設定改變 管理工作處理序管理工作處理序

WWW Service WWW Service 不執行任何不執行任何 WebWeb 應用程式應用程式 確保 確保 Web server Web server 可靠性可靠性 應用程式錯誤無法影響應用程式錯誤無法影響 Web serverWeb server

工作處理序工作處理序W3WP.EXEW3WP.EXE

全部的全部的 WebWeb 應用程式皆使用 應用程式皆使用 ““ Out of Out of Process”Process” 方式執行方式執行

完整的隔離系統元件與其它的 完整的隔離系統元件與其它的 Web Web 應用應用程式程式

當不正常時可以隔離工作處理序進行偵錯當不正常時可以隔離工作處理序進行偵錯 Demand Start: Demand Start: 工作處理序將在需要時工作處理序將在需要時

才建立,在非使用狀況則被釋放才建立,在非使用狀況則被釋放

Demand StartDemand Start 10:02am10:02am - Web Server - Web Server 啟動啟動

HTTP.sysHTTP.sysHTTP.sysHTTP.sys

沒有任何應用程式集區執行緒被建立沒有任何應用程式集區執行緒被建立

接聽 Port 80 要求

Working Set: 6,772K

Demand StartDemand Start 10:05am10:05am – – 收到 收到 HR Application HR Application 要求要求

HTTP.sysHTTP.sysHTTP.sysHTTP.sys

HR Application Pool HR Application Pool 啟動啟動

GET http://HRPayroll

W3wp.exeW3wp.exeW3wp.exeW3wp.exe

HR PayrollHR Payroll

HR RecruitingHR Recruiting

Working Set: 33,784K

Demand StartDemand Start 10:10am10:10am – – 收到 收到 ERP Application ERP Application 要求要求

HTTP.sysHTTP.sysHTTP.sysHTTP.sys

ERP Application Pool ERP Application Pool 啟動啟動

GET http://ERPortal

W3wp.exeW3wp.exeW3wp.exeW3wp.exe

HR PayrollHR Payroll

HR RecruitingHR Recruiting

W3wp.exeW3wp.exeW3wp.exeW3wp.exe

ERP ApplicationERP Application

ERP UtilityERP Utility

Working Set: 40,208K

Demand StartDemand Start 10:25am10:25am – HR Application Pool – HR Application Pool 超過等後逾時時間後自動結束 超過等後逾時時間後自動結束

HTTP.sysHTTP.sysHTTP.sysHTTP.sys

HR Application Pool Process is de-allocatedHR Application Pool Process is de-allocated

W3wp.exeW3wp.exeW3wp.exeW3wp.exe

HR PayrollHR Payroll

HR RecruitingHR Recruiting

W3wp.exeW3wp.exeW3wp.exeW3wp.exe

ERP ApplicationERP Application

ERP UtilityERP Utility

Still listening on HR and other endpoints

Working Set: 13,196K

HTTP.SYSHTTP.SYS

將要求的 將要求的 URL URL 導向到 導向到 IIS IIS 應用程式集區應用程式集區 當應用程式無法使用的時候將 當應用程式無法使用的時候將 HTTP ReqHTTP Req

uestuest 存放在佇列 中存放在佇列 中 在核心中提供靜態與動態網頁內容的在核心中提供靜態與動態網頁內容的 RespResp

onseonse 快取,避免快取,避免 context switchingcontext switching 使用 使用 Kernel cache Kernel cache 大幅提高 大幅提高 throughputthroughput

不載入或執行任何應用程式碼不載入或執行任何應用程式碼 不受到 不受到 Web Web 應用程式失敗或錯誤的影響應用程式失敗或錯誤的影響

應用程式集區介紹應用程式集區介紹 IIS 5 IIS 5 提供 提供 1 1 個 “集區” 程個 “集區” 程

序序 IIS 6 IIS 6 應用程式集區應用程式集區

建立一個或多個集區建立一個或多個集區 設定名稱設定名稱 指派在網站、目錄或是虛擬目指派在網站、目錄或是虛擬目

錄的應用程式到任何一個集區錄的應用程式到任何一個集區中中

每個集區程序分別設定健康偵每個集區程序分別設定健康偵測、執行身分、回收測、執行身分、回收

允許高可用性與隔離允許高可用性與隔離 Site/Site/ 用戶用戶 功能性功能性 可靠性可靠性 安全性安全性

Side by side Side by side 技術能讓不同技術能讓不同版本元件在單一伺服器上執行版本元件在單一伺服器上執行

IIS 6.0 IIS 6.0 應用程式隔離模式應用程式隔離模式 工作處理序隔離模式工作處理序隔離模式

IIS 6.0 IIS 6.0 重新設計的架構重新設計的架構 預設身分識別為 預設身分識別為 NetworkServiceNetworkService 以工作處理序當作隔離的單位以工作處理序當作隔離的單位

IIS 5.0 IIS 5.0 隔離模式隔離模式 提供和提供和 IIS 5.0IIS 5.0相容的環境相容的環境 預設身分識別為 預設身分識別為 LocalSystemLocalSystem 依隔離層級分低、中、高依隔離層級分低、中、高

注意:注意: IIS 6.0 IIS 6.0 不能同時執行這兩種隔離模式不能同時執行這兩種隔離模式

IIS 6.0 IIS 6.0 應用程式隔離模式應用程式隔離模式設定隔離模式設定隔離模式

IIS 6.0 IIS 6.0 強化的新功能強化的新功能使用工作處理序隔離模式的優點使用工作處理序隔離模式的優點 更 好 的 穩 定 性 自 動 資 源 管 理 自 我 狀 態 偵 測 自 訂 身 份 識 別

更好的穩定性更好的穩定性不再因為某個應用程式失敗而影響其他應用程式不再因為某個應用程式失敗而影響其他應用程式

工作處理序完全隔離 工作處理序完全隔離 所有的工作處理序直

接對 Kernel 溝通 工作處理序之間無法

亙相影響 Kernel 模式下提供快取和佇列功能

應用程式集區應用程式集區 Web gardens

HTTP.sysHTTP.sys

WWWWWWServiceService

工作處理序工作處理序

ISAPI FiltersISAPI Filters

ISAPIISAPIExtensionsExtensions

工作處理序工作處理序

ISAPI FiltersISAPI Filters

ISAPIISAPIExtensionsExtensions

應用程式集區應用程式集區 應用程式集區應用程式集區

更好的穩定性更好的穩定性設定應用程式集區設定應用程式集區

自動資源管理自動資源管理工作處理序回收處理及效能設定工作處理序回收處理及效能設定

工作處理序回收處理:工作處理序回收處理: 工作時間工作時間 使用者提出的使用者提出的 RequestRequest 數量數量 固定時間週期固定時間週期 記憶體最大使用量記憶體最大使用量 立即要求立即要求

效能設定效能設定 閒置時間 Request Queue Request Queue CPUCPU 使用量使用量

自動資源管理自動資源管理回收工作處理序回收工作處理序

Web GardenWeb Garden

應用程式集區設定應用程式集區設定 可啟動的工作處理序個數可啟動的工作處理序個數

組態檔內組態檔內 SMPAffinitized SMPAffinitized 決定是否設定決定是否設定 CPU AffinityCPU Affinity SMPProcessorAffinityMask SMPProcessorAffinityMask 決定決定 CPUCPU 配置配置

Web GardenWeb Garden

自我狀態偵測自我狀態偵測健康情況健康情況

定期定期 PingPing 工作處理序工作處理序 無回應時,另外啟動一個新的工作處理序執行無回應時,另外啟動一個新的工作處理序執行

啟動”快速失敗保護”機制啟動”快速失敗保護”機制 防止在短時間內發生異常的連續失敗防止在短時間內發生異常的連續失敗 (503)(503) 經由在單位時間發生失敗的次數決定經由在單位時間發生失敗的次數決定 結果:停止該工作處理序結果:停止該工作處理序

自訂身份識別自訂身份識別決定在應用程式集區內的身份識別決定在應用程式集區內的身份識別

內建身份識別內建身份識別 LocalSystem - LocalSystem - 權限最高權限最高 NetworkService - NetworkService - 權限低,可以存取網路上的權限低,可以存取網路上的

資源資源 LocalService - LocalService - 權限最低,只能存取本機資源權限最低,只能存取本機資源

自訂身份識別自訂身份識別 必須加入到必須加入到 IIS_WPGIIS_WPG 群組群組

管理功能的改良管理功能的改良更容易管理 新的系統管理功能新的系統管理功能

可以搬移或複製網站及虛擬目錄的組態設定到可以搬移或複製網站及虛擬目錄的組態設定到其他位置其他位置

組態資料透過密碼保護組態資料透過密碼保護 可以透過使用者介面或可以透過使用者介面或 ADSI/WMI APIADSI/WMI API 管理管理

XML MetabaseXML Metabase XML BaseXML Base ,用來設定,用來設定 IIS 6.0IIS 6.0 的組態定義檔的組態定義檔

管理功能的改良 管理功能的改良 應用程式目錄複製應用程式目錄複製

管理功能的改良管理功能的改良XML MetabaseXML Metabase

Text BaseText Base ,任何文字編輯器都可以編輯,任何文字編輯器都可以編輯 自動版本控管及記錄歷史資料自動版本控管及記錄歷史資料 自動建立備份自動建立備份 可以在可以在 IISIIS 執行服務時修改資料執行服務時修改資料 複製整個網站或應用程式複製整個網站或應用程式

管理功能的改良 管理功能的改良 XML Metabase XML Metabase 備份和還原備份和還原

效能的改良 效能的改良 動態核心快取動態核心快取

GET http://www.netmag.com.tw/magList.aspxGET http://www.netmag.com.tw/magList.aspx

沒有沒有CacheCache

Cache

Network Stack

HTTP.SYS

W3WP.EXE (IIS6.0)

ASP.NET/CLR

User Application

UserKernel

Database

使用使用CacheCache

RequestRequest ResponseResponse

<%@ OutputCache Duration="10" VaryByParam="none" %>

Cache

Network Stack

HTTP.SYS

W3WP.EXE (IIS6.0)

ASP.NET/CLR

User Application

UserKernel

Database

RequestRequest ResponseResponse

安全性的改良預設就是安全的設定

產品異動的部分 產品異動的部分 驗證及授權驗證及授權

安全性的改良安全性的改良產品異動的部分產品異動的部分 預設不會安裝預設不會安裝 IISIIS IISIIS 預設只提供靜態文件讀取預設只提供靜態文件讀取 不允許透過不允許透過 IISIIS 執行命令模式下的程式 執行命令模式下的程式 IISIIS 透過權限很低的帳戶執行透過權限很低的帳戶執行 加強預設的安全性加強預設的安全性 更多限制及更多限制及 TimeoutTimeout

安全性的改良安全性的改良Web Service Extensions UIWeb Service Extensions UI

安全性的改良安全性的改良新的驗證方式新的驗證方式 進階摘要式驗證進階摘要式驗證

類似類似 IIS 5.0IIS 5.0 的摘要式驗證,會將使用者憑證透過的摘要式驗證,會將使用者憑證透過 HashHash 方式存放於方式存放於 ADAD 上上 .NET Passport.NET Passport

描述提供單一登入安全,給予使用者存取網際網路上多種服務的驗證方描述提供單一登入安全,給予使用者存取網際網路上多種服務的驗證方法法

預設登入網域預設登入網域

安全性的改良安全性的改良新的授權方式新的授權方式 URLURL授權授權

URL BaseURL Base 權限管理權限管理 以角色為基礎以角色為基礎 應用程式群組應用程式群組

和和 ASP.NETASP.NET 整合的部份整合的部份相較相較 IIS 5.0IIS 5.0 的差異處的差異處 安裝安裝 IIS 6.0IIS 6.0 後預設沒有使用後預設沒有使用 ASP.NETASP.NET 在工作處理序隔離模式下在工作處理序隔離模式下

身份識別為身份識別為 NetworkServiceNetworkService 原本的原本的 <processModel><processModel> 設定大部份都被設定大部份都被

IIS 6.0IIS 6.0 取代取代 工作處理序為工作處理序為 w3wp.exew3wp.exe

透過透過 IIS 6.0IIS 6.0 來維護來維護 WebWeb 應用程式應用程式 執行效能較佳執行效能較佳

結論結論 為了充份發揮為了充份發揮 IIS 6.0IIS 6.0 的新功能的新功能

使用工作處理序隔離架構使用工作處理序隔離架構 效能、穩定性、延展性效能、穩定性、延展性

MetabaseMetabase 讓讓 IIS 6.0IIS 6.0 容易部署、備份及復原容易部署、備份及復原

對對ASP.NET WebASP.NET Web 應用程式的影響應用程式的影響 透過透過 IIS 6.0IIS 6.0 管理應用程式資源管理應用程式資源 使用新的處理序身份識別 使用新的處理序身份識別 NetworkServiceNetworkService

參考資源參考資源 IIS Community PortalIIS Community Portal

http://www.microsoft.com/windowsserver2003/community/centers/iis/dhttp://www.microsoft.com/windowsserver2003/community/centers/iis/default.mspxefault.mspx

IIS PortalIIS Portal http://www.microsoft.com/http://www.microsoft.com/iisiis

Third-party sitesThird-party sites http://http://iisanswers.comiisanswers.com http://http://iisfaq.comiisfaq.com