← Back to list

📑 什麼是 IIS、AppPool、Worker Process?其實是「餐廳」

在 Windows Server 上跑網站,最常見的就是用 IIS(Internet Information Services)。很多 IT 初學者聽到 AppPool 和 Worker Process…

思維舞步 MindSteps · 2026-06-27 13:05 · 0 claps · 4.1 min read
#information-technology #web-app-development #system-design-concepts #system-architect #windows-server
Open on Medium ↗
Wiki topics: 🏛️ · Architecture

📑 什麼是 IIS、AppPool、Worker Process?其實是「餐廳」

在 Windows Server 上跑網站,最常見的就是用 IIS(Internet Information Services)。很多 IT 初學者聽到 AppPoolWorker Process 就覺得抽象。其實只要理解它們的角色,再配合比喻和案例,就能掌握網站運作的核心。

🌐 專業解釋

IIS(Internet Information Services)

  • 微軟提供的 Web Server,用來處理 HTTP/HTTPS 請求。
  • 提供網站託管、應用程式服務、靜態檔案傳送等功能。

AppPool(Application Pool)

  • IIS 的「應用程式集區」,用來隔離不同網站或應用。
  • 每個 AppPool 都有獨立的設定與資源,互不干擾。
  • 好處:某個網站崩潰,不會影響其他網站。

Worker Process(w3wp.exe)

  • AppPool 裡的工作進程,負責真正執行程式碼。
  • 當瀏覽器發送請求,Worker Process 會處理並回應。
  • 一個 AppPool 可以有一個或多個 Worker Process,視乎設定。

📂 為何 Folder Permission 要用 ApplicationPool 層去 Grant?

  • 在 IIS 中,網站的檔案存取權限通常不是直接給「使用者帳號」,而是給 AppPool Identity

原因

  • 每個 AppPool 都有獨立的 Identity(類似一個專屬帳號)。
  • 當 Worker Process 執行程式碼時,它會以該 Identity 的權限去存取檔案。
  • 這樣可以確保不同網站的檔案存取互相隔離,避免安全風險。

例子

  • 官網的 AppPool Identity 只能存取官網的檔案資料夾。
  • API 系統的 AppPool Identity 只能存取 API 的檔案資料夾。 👉 好處是:即使某個網站被入侵,攻擊者也無法直接存取其他網站的檔案。

🎨 比喻章節

想像一間大型餐廳:

  • IIS = 餐廳,負責接待所有客人(瀏覽器請求)。
  • AppPool = 餐廳裡的不同廚房分區(中菜、西餐、甜品),把不同網站或應用分隔開。每個廚房分區都有自己的「門禁卡」(Permission),例如中菜廚房的廚師只能用門禁卡進入 中菜儲物室(Folder),不能進入西餐儲物室。
  • Worker Process = 廚師,真正下廚(執行程式碼、處理請求)。

客人(使用者)走進餐廳(IIS),被安排到合適的廚房分區(AppPool),最後由廚師(Worker Process)完成菜餚(網站回應)。而廚師只能進入自己有權限的儲物室,確保不同菜系互不干擾。

📖 案例

假設一間公司有一台伺服器,同時要跑三個網站:

  • 公司官網:主要提供靜態頁面,放在一個 AppPool。
  • 客戶登入平台:需要驗證與交易,放在另一個 AppPool。
  • API 系統:提供資料給手機 App 使用,放在第三個 AppPool。

三個網站都由 IIS 管理(餐廳),各自分配到不同的 AppPool(廚房分區),再由各自的 Worker Process(廚師)處理請求。

👉 好處是:如果 API 系統出現程式錯誤,只會影響它自己的 AppPool,不會拖垮公司官網或客戶登入平台。同時,因為 Folder Permission 是以 AppPool Identity 設定,官網的檔案不會被 API 系統誤用。

❓ 常見問題

為什麼要分 AppPool?

  • 隔離性:不同網站互不影響。
  • 安全性:若某個網站被攻擊,其他網站仍能正常運作。
  • 資源管理:可針對不同網站設定不同的記憶體、CPU 使用限制。

Worker Process 崩潰會怎樣?

  • 當 Worker Process 崩潰,該 AppPool 下的網站會暫時無法回應。
  • IIS 會嘗試自動重啟 Worker Process。
  • 若崩潰頻繁,可能是程式碼錯誤或資源不足,需要開發或系統管理員排查。

🌟 最佳實務

  • AppPool 回收設定:定期回收 Worker Process,避免長時間佔用資源導致效能下降。
  • 監控 Worker Process:使用監控工具追蹤 w3wp.exe 的 CPU、記憶體使用情況。
  • 分配資源:針對不同 AppPool 設定合理的資源限制,避免單一網站耗盡伺服器資源。
  • 錯誤日誌分析:定期檢視 IIS 與應用程式日誌,及早發現問題。
  • Folder Permission 管理:永遠以 AppPool Identity 設定檔案存取權限,確保安全隔離。

✅ 結論

IIS 是整個網站服務的框架,AppPool 是分隔不同應用的容器,而 Worker Process 則是實際執行程式的進程。Folder Permission 必須以 AppPool 層去 Grant,才能確保不同網站的檔案存取安全隔離。透過「餐廳 — 廚房 — 廚師 — 儲物室門禁卡」的比喻,再加上實際部署案例與最佳實務,大家可以更容易理解這三者的關係:IIS 管理全局,AppPool 分隔環境與權限,Worker Process 真正處理請求


메타데이터
post_id
5b97ee96d689
slug
什麼是-iis-apppool-worker-process-其實是-餐廳-5b97ee96d689
url
https://medium.com/@mindsteps.alex/%E4%BB%80%E9%BA%BC%E6%98%AF-iis-apppool-worker-process-%E5%85%B6%E5%AF%A6%E6%98%AF-%E9%A4%90%E5%BB%B3-5b97ee96d689
canonical_url
https://medium.com/@mindsteps.alex/%E4%BB%80%E9%BA%BC%E6%98%AF-iis-apppool-worker-process-%E5%85%B6%E5%AF%A6%E6%98%AF-%E9%A4%90%E5%BB%B3-5b97ee96d689
author_url
https://medium.com/@mindsteps.alex
status
ok
fetched_at
2026-07-10 21:17:37