第 21 章 架設網站
本章重點 21-1 IIS 簡介 21-2 開啟 IIS 的網頁伺服器 21-3 Web 網站的基本管理 21-4 Web 網站的進階設定
21-1 IIS 簡介 21-1-1 IIS 的功能 21-1-2 Windows Vista 上 IIS 的限制
21-1-1 IIS 的功能 Windows Vista 內建 IIS 7 (Internet Information Services), 可以提供 Web 服務給用戶端。 也就是說, 只要開啟 IIS 的相關功能, 就可以利用 Windows Vista 架設 Web 網站。 IIS 7 可說是微軟新世代的伺服器架站軟體, 微軟將 IIS 的功能以模組化的方式重新架構, 讓 IIS 的執行與功能擴充上更具彈性, 管理者可以依需求開啟或關閉功能, 降低記憶體與 CPU 資源不必要的消耗, 提升整體執行的效率。
IIS 的功能 此外, 關閉不必要的功能後, 還可以減少因某功能有弱點而被入侵的機率, 提高安全性。 IIS 7 也將 .NET 完全整合至核心, 提升 ASP.NET 的執行效率, 還可以使用 .NET 撰寫 IIS 模組, 所以 .NET 程式設計者不僅可以開發 Web 應用程式, 現在還可以直接設計 IIS 模組, 為 IIS 加入新功能。 雖然 IIS 7 在 Web 服務方面增強了功能, 但是與之前的 IIS 版本相較, IIS 7 不再提供 SMTP (可架設郵件伺服器) 與 NNTP (可架設 News 伺服器) 這兩種服務。
21-1-2 Windows Vista 上 IIS 的限制 因為 Windows Vista 是桌面環境的作業系統, 而非設計給伺服器專用, 所以家用入門版 (Home Basic) 不包含 IIS, 而其他版本 Windows Vista 的 IIS 也有些許功能上的限制, 概要列表如下:
Windows Vista 上 IIS 的限制
Windows Vista 上 IIS 的限制 除了功能上的限制外, Windows Vista 的 IIS 有最大連線數的限制。 家用進階版 (Home Premium) 同一時間最多只允許 3 個 TCP 連線至 IIS 所提供的服務, 而商用入門版 (Business)、商用進階版 (Enterprise) 與旗艦版 (Ultimate) 的 IIS 最大連線數為 10 個。 雖然 Windows Vista 的 IIS 有功能與最大連線數的限制, 但是對於某些環境而言, Windows Vista 的 IIS 仍然可以勝任許多工作, 例如:
Windows Vista 上 IIS 的限制 學習 IIS 操作:如果只是想學習 IIS 的相關操作, 但又無法安裝伺服器專用的 Windows 版本 (Windows 2000 / 2003 / 2003 R2), 此時可以先透過 Windows Vista 上的 IIS, 熟悉其操作介面與管理架構, 以便正式接觸伺服器時, 可以很快地上手。 測試 Web 應用程式:不論是 Web 應用程式的學習者或是設計者, 都需要一個環境來進行測試, 而 Windows Vista 的 IIS 便可以提供一個絕佳的測試環境。
Windows Vista 上 IIS 的限制 小規模的網路環境:對於人數不多的內部網路環境, 或者較單純的小型社團與組織, 可能只需要架設 Web 網站或 FTP 站台供少量的使用者存取, 因為使用人數少或同時上線的機率低, 所以 Windows Vista 上 IIS 的最大連線數便是可以接受的限制。
21-2 開啟 IIS 的網頁伺服器 雖然 IIS 隨附在 Windows Vista 中, 但是預設並未被開啟, 本節將說明如何開啟 IIS 中的網頁伺服器功能, 以及相關的防火牆設定。
21-2-1 安裝前的準備 如果您使用 IIS 架設網站的目的在於服務內部網路使用者, 或者是在本機上先行測試、學習架設網站, 則開啟 IIS 的相關功能前, 只要先確定電腦的 TCP / IP 環境可以正常運作即可。 而如果要讓網際網路的使用者可以連上 IIS 所架設的伺服器, 便需要合法的 IP 位址或是網域名稱, 否則 IIS 無法透過網際網路來服務使用者。
21-2-2 開啟 IIS 的網頁伺服器功能 欲開啟 IIS 內的網頁伺服器功能, 請開啟控制台選擇程式集項目, 然後依照下列步驟操作:
開啟 IIS 的網頁伺服器功能
開啟 IIS 的網頁伺服器功能
開啟 IIS 的網頁伺服器功能
開啟 IIS 的網頁伺服器功能 上面我們在 Windows 功能交談窗中選取 Internet Information Services 功能, 即可依照預設值開啟 IIS 的相關功能, 如此即可架設一個具備基本功能的網頁伺服器:可提供靜態網頁的存取, 但是無法執行 ASP、ASP.NET、CGI 等 Web 應用程式。 IIS 內的相關功能相當多, 對於初學者而言, 建議可以先採用預設值開啟基本功能即可, 等到需要某個功能時, 再到 Windows 功能交談窗開啟該功能。
開啟 IIS 的網頁伺服器功能 本章也會先採用預設值進行說明, 若實作時需要某個功能, 再請您開啟。
IIS 各功能的相依性 IIS 有些功能之間會有相依性, 因為功能必須依賴另一個功能才能正常運作。 例如勾選全球資訊網服務下應用程式開發功能項目的 ASP 時, 同一項目下的 ISAPI 擴充程式 便會被自動勾選。 反過來說, 當我們取消勾選某個被其他功能相依的功能時, 則會將其他功能一併關閉。 例如上述 ASP 與 ISAPI 擴充程式的相依情況, 如果取消勾選 ISAPI 擴充程式時, 便會出現如右的交談窗, 提示我們 ASP 功能也會被關閉:
IIS 各功能的相依性
21-2-3 在本機上測試網頁伺服器 開啟 IIS 的網頁伺服器功能後, 不需重新啟動電腦, IIS 服務就會自動啟動, 也就是說, 開啟之後您的主機就已經是個運作中的網頁伺服器。 伺服器中會有一個內建的預設網站, 也一樣是啟動的狀態, 所以您可以在本機上使用 IE 瀏覽器, 連線至 http://127.0.0.1, 即可看到預設網站的歡迎首頁:
在本機上測試網頁伺服器
在本機上測試網頁伺服器 如果您的目的是為了使用本機先行測試、學習網站架設, 則只要測試本機連線即可。 若是需要讓其他電腦連線 Web 網站, 請繼續參考接下來的說明修改防火牆設定。
21-2-4 在其他電腦測試網頁伺服器 因為 Windows Vista 預設會啟動防火牆功能, 其他電腦要連上您的網頁伺服器時, 會被防火牆擋下, 所以必須修改防火牆的設定, 開啟網頁伺服器所使用的 TCP 連接埠。 請執行『開始 / 控制台』命令, 選擇網路和網際網路項目, 然後再選擇 Windows 防火牆項目, 依照下面步驟操作:
在其他電腦測試網頁伺服器
在其他電腦測試網頁伺服器
在其他電腦測試網頁伺服器
在其他電腦測試網頁伺服器 如此, 使用其他電腦即可連線至您的網頁伺服器:
21-3 Web 網站的基本管理 本節為您說明利用 IIS 管理工具, 來修改 Web 網站的各項基本設定。 21-3-1 IIS 管理工具 21-3-3 修改網站基本設定
21-3-1 IIS 管理工具 如果要對 Web 網站進行設定與管理, 請執行 『開始 / 控制台』命令, 選擇系統及維護項目, 然後再選擇系統管理工具, 在系統管理工具視窗內雙按 Internet Information Services (IIS) 管理員項目, 接著在使用者帳戶控制交談窗上按繼續鈕, 即可開啟 IIS 管理工具:
IIS 管理工具
IIS 管理工具
21-3-2 Web 伺服器的管理層次 我們可以針對『整個網頁伺服器』、『伺服器內的網站』、『網站內的目錄』等 3 個層級來進行管理。 當您要設定伺服器時, 只要在 IIS 管理工具的左邊連線窗格, 選擇最上層 圖示或其伺服器名稱, 即可在中間窗格進行設定, 或是在右邊的動作窗格執行動作。 同樣地, 如果要設定網站或是網站的目錄, 請在左邊連線窗格展開網站項目, 選擇要設定的網站或目錄, 即可在中間與右邊動作窗格設定或執行動作。
Web 伺服器的管理層次 這 3 層彼此間的關係是下層繼承上層的設定:
Web 伺服器的管理層次 舉例來說, 如果在伺服器設定:『找不到網頁時顯示 404.htm』(404.htm 此檔案包含訊息以提醒使用者網頁不存在), 則伺服器中所有網站、網站內的目錄都會繼承這項設定, 在找不到網頁時自動顯示 404.htm。 不過若是下層有自己的設定時, 便會覆蓋上一層的設定。
Web 伺服器的管理層次 以上面例子來說, 若伺服器內某個網站設定找不到網頁時顯示 notfound.htm, 雖然伺服器的設定是 404.htm, 但是連線該網站時如果找不到網頁, 將會顯示 notfound.htm 而不是 404.htm。 雖然下層設定會覆蓋上層設定, 但是伺服器管理者可以將某些設定鎖住, 不允許下層使用自己的設定。 如果要鎖定或解除鎖定某個設定, 請如下操作:
Web 伺服器的管理層次
Web 伺服器的管理層次
21-3-3 修改網站基本設定 請在 IIS 管理工具中如下操作, 進行 網站的基本設定:
修改網站基本設定
IIS 管理工具的應用程式集區 在 IIS 管理工具的左邊連線窗格, 可以看到一個名為應用程式集區的項目。 所謂的應用程式集區 (Application Pool), 是 IIS 用來區隔每個 Web 應用程式 (ASP、ASP.NET、CGI...等程式) 的群組。 因為 IIS 的網頁伺服器內可以架設多個網站, 每個網站可能會執行一個或多個 Web 應用程式, 此時可以使用應用程式集區來將 Web 應用程式分組,
IIS 管理工具的應用程式集區 同一個應用程式集區內的 Web 應用程式會使用同一個處理程序, 亦即不同組 (不同應用程式集區) 的 Web 應用程式執行時, 會使用不同的處理程序。 所以使用應用程式集區可以提高安全性, 不同組之間無法存取彼此的資源, 而且某一組的程式當掉時, 不會影響其他組內的程式。 因為本書並非架站與程式設計專書, 所以隨後不會說明應用程式集區的設定方式, 而設定網站時, 會直接使用預設的 DefaultAppPool 應用程式集區。
修改網站基本設定 上圖實體路徑欄位中的 %SystemDrive% 變數, 代表 Windows 所在的系統磁碟, 一般是 C:, 所以預設網站的資料便存放在 C:\inetpub\wwwroot:
修改網站基本設定 當使用者瀏覽網站時, 會存取 C:\inetpub\wwwroot 下的檔案或目錄, 例如上圖中有一個 flag.htm 檔案, 所以使用者在瀏覽器輸入 "http:// 網站 IP 或網域 /flag.htm" 即可存取:
修改網站基本設定 如果管理者在 C:\inetpub\wwwroot 下建立一個 share 目錄, 然後於其中放置 tool.htm 檔案, 則使用 “http:// 網站 IP 或網域 /share/tool.htm" 便可以看到其內容。
21-4 Web 網站的進階設定 本節再繼續為您說明利用 IIS 管理工具, 來修改頻寬、連線逾時、連線數目、預設文件、瀏覽目錄, 以及自訂錯誤網頁畫面等設定。
21-4-1 頻寬、連線逾時、連線數目等限制 在 IIS 伺服器中, 可以針對每個網站設定網路頻寬與連線數目的限制, 避免網站佔用過多的連線頻寬, 影響其他需要使用網路的程式。 此外, 還可以設定當用戶端與伺服器連線過程中, 用戶端多久未回應則視為逾時並切斷連線, 以免浪費伺服器資源。 要設定以上限制時, 請在 IIS 管理工具中如下操作:
頻寬、連線逾時、連線數目等限制
頻寬、連線逾時、連線數目等限制
21-4-2 設定預設文件 預設文件相當於網站或目錄的首頁, 當使用者瀏覽網站時若沒有指明檔案, 例如只輸入 http://flag.com.tw/ 或是 http://flag.com.tw/tool/, 此時伺服器就會傳送預設文件給使用者。 舉例來說, 若預設文件為 Default.htm, 那麼瀏覽 http://flag.com.tw/ 時, 伺服器會將 http://flag.com.tw/Default.htm 傳送給使用者。 每一個網站以及網站的每一個目錄, 都可以個別指定預設文件, 而且可以同時指定數個不同的預設文件。
設定預設文件 例如設定預設文件為 “Default.htm, index.htm, iisstart.htm”, 伺服器會優先以 Default.htm 做為預設文件, 若找不到該檔案, 才會使用 index.htm, 再找不到的話, 便會使用 iisstart.htm。 若要設定預設文件, 請在 IIS 管理工具中如下操作:
設定預設文件
設定預設文件
設定預設文件 如果取消預設文件的功能, 則使用者連線時, 必須指定檔案名稱, 若只輸入 http://flag.com.tw/, 便會產生找不到網頁的錯誤, 請特別留意。
21-4-3 瀏覽目錄功能 前面說明當使用者沒有指定要瀏覽的檔案時, 伺服器會依照預設文件的設定, 將網頁傳送給使用者。 若管理者停用預設文件的功能, 或者伺服器找不到預設文件設定的檔案時, 便會顯示以下訊息:
瀏覽目錄功能
瀏覽目錄功能 不過您也可以設定當此狀況發生時, 要顯示目錄內的檔案與子目錄清單, 也就是允許使用者直接瀏覽目錄:
瀏覽目錄功能 如果想要開啟以上功能, 請在 IIS 管理工具中如下操作:
瀏覽目錄功能
瀏覽目錄功能
瀏覽目錄功能 啟用目錄瀏覽功能後, 使用者就可以得知網站的目錄結構, 所以如非必要, 建議不要啟用此功能。
自訂錯誤網頁 當使用者瀏覽網站時, 可能會因為權限不足, 或是伺服器本身的錯誤 (如找不到網頁), 導致網站無法回應要求, 此時依照狀況會產生不同的 HTTP 狀態碼, 而管理者可以設定各狀態碼產生時應該顯示什麼網頁, 以便將錯誤狀況通知使用者。 例如伺服器如果找不到網頁, 就會產生編號 404 的 HTTP 狀態碼, 根據 IIS 的預設值, 此時會傳送 404.htm 給使用者, 告知發生網頁找不到的錯誤。
自訂錯誤網頁 如果您想要自行設定各狀態碼所對應的網頁, 請在 IIS 管理工具中如下操作:
自訂錯誤網頁
自訂錯誤網頁