廖常武
(南京工業職業技術大學,南京 210023)
使用Windows Server 2016 IIS 提供的虛擬主機[1]功能,可以在一臺服務器創建多個Web 網站[2],虛擬主機有主機名、IP 地址和TCP 端口號三種方式。 網站的識別信息有主機名、IP 地址與TCP 端口號三個參數,當這三個參數有一個不同時,即可創建一個Web網站。 每個網站分別擁有各自獨立的主機名、IP 地址與TCP 端口號[3]。 當用戶在訪問這些網站時,就如同訪問不同的服務器,不會影響網站的功能。
(1)使用主機名創建多個網站。 使用主機名創建虛擬網站是常見的創建虛擬網站的方法。 如果服務器只有一個IP 地址,但申請了DNS 域名[4],使用DNS 服務器對主機名進行域名解析,在DNS 服務器中設置主機A 記錄,一個IP 地址對應多個主機名,就可以添加多個不同主機名的網站,用戶訪問時仍使用域名。
可以使用2 臺DNS 服務器維持一個域名的域名解析, 一臺為主DNS 服務器、 一臺為輔助DNS 服務器,申請域名時需要確定2 臺DNS 服務器的主機名和IP 地址。首先安裝主DNS 服務器,配置主DNS 服務器的正向查找區域和反向查找區域,添加相應的主機記錄,一個IP 地址可以對應多個主機名A 記錄。 然后安裝輔助DNS 服務器, 輔助DNS 服務器自動從主DNS讀取數據,2 臺DNS 服務器可以起到冗余的作用。
使用Windows Server 2016 的IIS 創建Web 網站。 定義網站名稱和應用程序池,每個應用程序池都是一個獨立的運行環境,系統會為每個新建網站自動創建一個應用程序池,應用程序池的名稱與網站名相同,然后讓此新網站在這個擁有獨立環境的新應用程序池內運行,網站運行不受其他應用程序池內的網站的影響,使得網站更加穩定。確定網站的主目錄、默認文檔和主機名,主目錄是指保存網站所有網頁的文件夾,默認文檔是訪問網站的首頁文件名,網站的主機名是在瀏覽器地址欄輸入的域名。在客戶端瀏覽器輸入主機名即可正常訪問所創建的網站。
例如, 設服務器的IP 地址是210.28.96.66,DNS域名為niit.edu.cn。 在DNS 服務器中添加2 條主機A記錄,IP 地址為210.28.96.66, 主機名分別為mail 和jwxx。 在IIS 中使用創建jwxx 和mail 網站,主機名分別是mail.niit.edu.cn 和jwxx.niit.edu.cn,設置每個網站的主目錄和默認文檔,則在客戶端使用http://mail.niit.edu.cn 和http://jwxx.niit.edu.cn 可以訪問網站。
(2)使用多個IP 地址創建多個網站。 如果服務器擁有多個IP 地址,服務器的一塊網卡綁定多個IP 地址,就可以為每個IP 地址創建一個虛擬網站,為每個網站設置主目錄和默認文檔,在客戶端瀏覽器輸入IP地址來訪問相應的網站。
例如, 設服務器有2 個IP 地址210.28.96.76 和210.28.96.86,網卡添加這2 個IP 地址,在IIS 中創建info 和auto 網站,TCP 端口均為80, 設置每個網站的主目錄和默認文檔, 則在客戶端使用http://210.28.96.76 和http://210.28.96.86 可以訪問網站。
(3)使用TCP 端口號創建多個網站。 使用TCP 端口號創建虛擬網站,如果服務器只有一個IP 地址,可以使用同一個IP 地址、 不同的TCP 端口號來創建虛擬網站, 為每個端口號創建一個虛擬網站,Web 服務器利用端口號來區別每一個網站,但用戶訪問網站時必須加上相應的TCP 端口號。
例如,設服務器IP 地址是210.28.96.10,在IIS 中創建port1t 和port2 網站,TCP 端口分別是8000 和8080,設置每個網站的主目錄和默認文檔,則在客戶端使用http://210.28.96.10:8000 和http://210.28.96.10:8080 可以訪問網站。 使用Windows Server 2016 的IIS設置的虛擬主機,如圖1 所示。

圖1 虛擬主機安裝結果
在Web 服務器中安裝ftp,ftp 的帳戶使用Windows Server 的用戶帳戶,將每個Web 網站的主目錄與ftp 的主目錄設置為同一個目錄,每個ftp 帳戶映射一個ftp 主目錄,如圖2 所示。
磁盤的文件系統設置為ntfs, 主目錄的ntfs 權限設置規則:映射的管理帳戶的權限為完全控制,其他帳戶的權限為拒絕。當管理帳戶登錄ftp 服務器時,對主目錄具有完全控制權限,可以刪除、復制主目錄的文件,實現對網站網頁的動態管理,但該ftp 帳戶不能訪問其他網站的主目錄,通過這種方式實現每個帳戶只能對自己的網站網頁進行管理。

圖2 ftp 帳戶和主目錄的映射關系
例如,設Windows Server 2016 有n個帳戶User1、User2,…,Usern,在ftp 服務器中User1 的ftp 主目錄是E:ftprootLocalUserUser1,其ftp 權限為“讀取”和“寫入”,設置ntfs 權限為完全控制,其他用戶的ntfs 權限為拒絕,這樣可以禁止其他用戶訪問該文件夾。
常見的ftp 服務器有Windows Server 2016 自帶的ftp 和Serv-U ftp 服務器軟件。
使用Windows Server 2016 ftp 服務器的用戶隔離技術,每個帳戶只對自己管理的主目錄具有完全控制權限,但對其他目錄的權限均為拒絕,這樣可以確保每個帳戶的主目錄只能是由一個帳戶管理,保證文件的安全性。Serv-U 是在Windows 平臺和Linux 平臺廣泛使用的ftp 服務器軟件,提供安全的文件管理、文件傳輸和文件共享的解決方案。 使用Serv-U 軟件的SU-ftp-Server-Windows-v15.1.7 版本,可以管理Web網站的網頁文件。
如, 將Serv-U 服務器的域設置為niit.edu.cn,群組選擇配置Windows 群組, 用戶帳戶即為Windows Server 的用戶帳戶。 將Serv-U 的ftp 根目錄設置為與Web 網站的主目錄為同一目錄。 Serv-U 的目錄訪問權限設置為列表、創建、重命名、刪除,文件權限設置為讀、寫、追加、重命名、刪除、執行。 在ntfs 中設置其他用戶對該主目錄沒有訪問權限, 以其他帳戶登錄Serv-U,進入文件夾則會彈出錯誤信息。
默認情況下,ftp 服務器并未限制用戶上傳文件的容量。 因此,當ftp 用戶一旦擁有寫入權限時,就可以向ftp 服務器上傳任意大小的文件, 從而導致服務器的硬盤空間可能迅速被占用。 為了保護硬盤空間,確保磁盤空間不被用戶上傳的文件存儲滿,可以啟用磁盤配額功能來限制每個用戶使用磁盤空間的大小。為用戶設置了磁盤配額以后,當用戶上傳的文件超出空間限制或者到警告等級時, 系統將自動發警告,提示用戶超出空間配額, 上傳操作不能完成等信息,并彈出錯誤信息。
使用Windows Server 2016 網絡操作系統, 應用虛擬主機技術在一臺物理計算機上建立多個Web 服務器,使用Serv-U 或IIS 創建一個ftp 服務器,把Web服務器和ftp 服務器的主目錄設置為同一個目錄,設置Windows Server 帳戶管理的ftp 服務器的主目錄有寫入權限,同時設置該帳戶對主目錄的ntfs 權限為完全控制,在客戶端以Windows 帳戶登錄ftp 服務器,允許刪除、修改網站網頁文件,通過Windows 的磁盤配額功能,對上傳的文件容量進行限制。通過這種方式,實現了將一臺計算機虛擬為多臺Web 服務器, 并由客戶端的ftp 進行管理。