今天是 2022鐵人賽的第一天,先花點小小篇幅講一下這個主題。基本上這則系列文會以我自身使用經驗搭配各類文檔來補齊細節,並盡量對提到的名詞做到解釋,可以紮實地去了解整個 IIS 的概念,某種意義上可能也算是自己的學習筆記吧。
動機是自己在工作上使用 IIS 使用的更深了些,除了官方文檔,其實不容易找到有系統性的介紹,能夠透過系統概論分支找到關於各個模組的細節、除錯。本系列旨在提供一個能讓初學 IIS 的新手能有些對各模組或概念的認識;有使用經驗的讀者則希望能夠從中補齊一些自己對細節的認知,穩固一些基礎部分。願大家讀完系列文都能夠對 IIS 或者說 Web Server 如何運作有更深一步的認識。
好的,說完前言,那麼第一天的內容先來談談我們這個系列文的主角,IIS。
之前其實聽到有個概念很有道理,針對一個名詞解釋,或是一個功能解釋,你能夠闡述多少,或是從什麼視角闡述,其實已經很大一個程度的展露了你在這件事情上的專業能力或認知到哪。
當然不是把每件簡單的事都從很複雜的角度去講,而是能不能切中核心的去描述。如果你認為你對 IIS 是有些掌握的朋友,可以先在腦海裡想一下自己對 IIS 的認識,然後再往下滑,來比對看看這篇文介紹的方式與概念跟你的想像有哪些出入。
IIS 全稱 Internet Information Service,直譯為網際網路資訊服務,是一套由 Microsoft 推出支援基於 Windows 作業系統上的網際網路相關操作的網頁整合介面。經常用於如網頁配置(Web)、檔案傳輸(FTP)、電子郵件(SMTP)、網路新聞(NNTP)的部署與管理,是 Web Server 的其中一種選擇(其他常見的選擇如 Apache,Nginx)。
上面這段敘述可以看出 IIS 與 Windows 的高度相依,基本上就是 Windows 的其中一個組件。如各版本的 IIS 支援週期也是跟著作業系統版本走的。每個作業系統版本都會對應一個大版本的 IIS,也並沒有單獨升級 OS / IIS 而不升級另一個的這種說法。
所以當在升級 OS 的時候如果是比較舊的 OS 也要注意這件事,IIS 前幾版的更動差異可能比較大一些,直到 IIS7 後大致功能底定,才在日後較少做根本性的更動。這可以從 Microsoft 的官方文件看出來,很多文章會以 7 為版本基底撰寫,補上後面各版本的更動差異。
通常會使用者選用 IIS 作為 Web Server 多半有兩個原因,一是使用 Windows OS,二是站台語言以 ASP / ASP.NET / .NET Core 撰寫。畢竟是與 OS 高度相依,許多設置或介面操作上 IIS 相較其他 Web Server 在 Windows 上都會來的簡單些,而 .NET 系列又是 Microsoft 自家的系列產品,部分設置高度相關,像網站的配置檔 web.config 裡有個 section 就是專門讓 .NET 的站台使用。
當然也不是說非 .NET 撰寫的網站就不能架在 IIS 上,IIS 仍有相關模組或配置支援此種架設方式。只是個人經驗上,如果在網路上找其他語言的架站,多會使用上面提到的另外兩種 Apache / Nginx 為主,相關除錯引導或分享也會比較多。(也可能有多個配套併用的場合,比如在 IIS 前面再多設置一層 Apache / Nginx 做 Proxy)
簡單的說,IIS 多為 Windows 作業系統上架設 .NET 相關網站的首選,相對其他工具的設置簡單且貼合作業系統,能夠就網際網路相關操作提供一個整合介面,協助處理進到 Server 上的請求、導向至正確位置。
上面這些大概就是快速地對 IIS 本身做一個簡單的介紹,在後面 29 天的內容裡,筆者會著重就各個功能模塊與角度介紹 IIS 使用上的細節與相關資訊。如果在你細心的閱讀中發現任何錯誤,歡迎提出指正,感謝你的分享讓我們可以一同討論認知。
那,2022 的鐵人賽就開始囉!喜歡或想要持續追蹤這篇文章的話別忘了追蹤起整個系列文喔。