Windows IIS服務掛載NAS共享文件存儲


本文介紹如何結合阿里雲NAS的SMB協議支持和ECS Windows虛擬機,使用Windows內置的互聯網信息服務(IIS)來提供Web和FTP服務。

阿里雲文件存儲服務NAS主要面向阿里雲ECS 實例、E-HPC、容器服務、彈性Web和BatchCompute 等計算節點提供文件存儲服務。通過標准的文件訪問協議NFS和SMB,用戶無需對現有應用做任何修改,即可在雲上使用具備無限容量及性能擴展、單一命名空間、多共享、高可靠和高可用等特性的分布式文件系統。

背景和基本信息

與NFS相比,SMB文件系統訪問協議更加適合於Windows客戶端,各個版本的Windows對SMB協議的支持更加完善,絕大多數Windows應用程序不經修改即可通過SMB協議訪問阿里雲文件存儲服務。因此,阿里雲建議應用集中運行在ECS Windows實例上的用戶優先考慮使用SMB文件系統。

阿里雲是目前市場上唯一一個全面支持NFS和SMB協議的公共雲廠商。阿里雲NAS支持SMB 2.0及以上的SMB協議版本,對應支持Windows Vista / Windows Server 2008及以上的各Windows版本,不支持Windows XP / Windows Server 2003及以下的各Windows版本。與SMB 2.0 及以后的版本相比,SMB 1.0協議設計的巨大差異在性能和功能的上有嚴重的不足,同時只支持SMB1.0或更早協議版本的Windows產品都已經完全退出微軟支持的生命周期。如果用戶創建新Windows實例,建議至少選擇Windows 2008 R2以上的版本。

Windows Server目前仍然是非常流行的網站建構平台。到2017年2月止,全球仍然有超過43%站點的Web Server采用微軟IIS (來自Netcraft February 2017 Web Server Survey),很多網站和博客系統也是基於內容管理系統例如WordPress、Joomla等和IIS在Windows平台得以實現。在阿里雲現有的用戶中,有不少用戶選擇用阿里雲ECS提供的獨享Windows虛擬機來提供網站服務。通過將網站內容資源集中存儲在一個高可靠,高吞吐,按量付費的阿里雲 SMB share上,IIS可以象訪問本地文件系統一樣訪問阿里雲NAS上的數據,從而讓用戶的網站可以實現存儲和計算服務的分離。此外,計算資源和存儲資源都可以支持按需彈性擴容, 通過阿里雲提供的負載均衡服務由多個虛擬機來共同承載一個彈性容錯的網站架構。

IIS提供的FTP服務也同樣有着非常廣泛的需求。例如,很多Web站點的管理員通過FTP來遠程管理Web站點的內容,同時還有很多用戶希望利用Windows虛擬機上的FTP服務在廣域網和阿里雲之間傳輸和共享文件。

基本設置

這里我們以IIS 7.5 (Windows Server 2008 R2)的設置為例,展示如何通過阿里雲NAS在阿里雲上提供提供單節點的Web和FTP服務。其它Windows服務器版本如Windows Server 2008和Windows Server 2012的安裝和部署也類似。用戶可以進一步使用阿里雲負載均衡服務來建構多服務器節點的彈性容錯的站點。

具體方法請參閱阿里雲負載均衡文檔

在公網環境里提供Web 和FTP Service的阿里雲ECS虛擬機由於服務的開放性容易受到安全攻擊。本文檔的設置步驟着重說明如何在功能上連接Web服務與NAS存儲,提出某些安全性的考慮,但不能作為完整的安全配置和實現方案。用戶需要承擔安全方面的所有最終責任,從系統級別(如設置防火牆、ECS實例安全組和及時安裝操作系統補丁)和服務級別(如使用阿里雲的各個安全產品)來全面保障自己網站服務和數據的安全性。

  • IIS安裝:

    以Windows Server 2008 R2為例,通過服務器管理器添加IIS角色並安裝IIS的過程如下面幾張圖所示。在不同Windows操作系統上安裝IIS的詳細過程請參閱下面的微軟在線文檔:

    IIS 7的安裝和部署

    安裝 IIS 和 ASP.NET 模塊(Windows Server 2012 和2012 R2)

    1. 用戶在服務器管理器中選擇添加Web服務器(IIS)角色。
    2. 用戶選擇為Web服務器安裝的角色服務,除基本的HTTP功能以外,我們還包括了FTP服務及擴展、ASP服務等,用於FTP over SSL服務和演示動態網頁腳本的使用。
    3. 單擊安裝,以下是安裝成功的提示界面。 
  • NAS SMB文件系統的創建和設置:

    您的Web服務資源及配置文件可以集中存儲在阿里雲NAS的一個SMB share上。創建了一個支持SMB的阿里雲NAS文件系統之后,通過設置權限組來保證當前Web服務器可以讀寫訪問SMB share對應的文件系統。您可以使用VPC或者經典網絡來連接NAS文件系統和Web服務器。創建和使用阿里雲NAS SMB文件系統的具體步驟請參考阿里雲博客《阿里雲文件存儲SMB協議服務及其申請和使用指南》

    創建SMB 文件系統后,您可以在文件系統的缺省share > myshare下創建目錄www來存儲網站文件。本示例中,在myshare\www下創建兩個文件來說明靜態網頁index.html和動態ASP腳本test.asp的操作流程。前者顯示“Hello World!”,后者動態獲取並顯示當前時間。

    Index.html

     
    <HTML> <HEAD> <TITLE>Hello World in HTML</TITLE> </HEAD> <BODY> <CENTER><H1>Hello World!</H1></CENTER> </BODY> </HTML> 

    Test.asp

     
    <HTML>
    
      <BODY>
    
         This page was last refreshed on <%= Now() %>.
    
      </BODY>
    
    </HTML>
    
    
    如下圖所示,當前的ECS虛擬機用戶可以通過Windows文件管理器來驗證對SMB share的訪問。在本示例中,\32f214a370-pcy74.cn-shanghai.nas.aliyuncs.com\myshare\www是網站資源的物理路徑,其中\32f214a370-pcy74.cn-shanghai.nas.aliyuncs.com\myshare是我們創建的阿里雲NAS SMB share。

    出於安全和管理的考慮,我們在系統里還加入了一個新用戶iis_user。在提供FTP服務或者在Windows Server2016上運行時,我們選擇通過該用戶而不是系統管理員來進行數據訪問。

  • 注意首先在服務器上新建這個iis_user用戶,步驟:計算機管理器——》本地用戶和組下面選擇用戶單擊右鍵新建用戶iis_user,並設置密碼,點擊確定,用戶已創建完成,但是最后要單用戶右鍵設置隸屬於Administrators,如下圖:
  • 如果不設置會報類似的錯誤,如:當前標識(iZra9s0rws5ycqZ\iis_user)沒有對“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET 

IIS Web服務的設置

如下圖所示,Windows Server2008 R2的用戶打開網站的  基本設置,並在 編輯網站的交互窗口中將 物理路徑設置為網站資源在阿里雲NAS上的存儲路徑。這里我們輸入UNC地址\32f214a370-pcy74.cn-shanghai.nas.aliyuncs.com\myshare\www作為網站資源的物理路徑。
 
說明 由於IIS缺省通過IIS的應用程序賬號和用戶組訪問,Windows桌面用戶不可直接使用在當前user session中映射的網絡驅動器如(Z:\),否則會出現訪問失敗的錯誤。


通過用本地瀏覽器訪問localhost或者127.0.0.1的index.html和test.asp,我們可以確認IIS現在已經可以正常進行Web服務了。服務器用戶可以進一步設置阿里雲安全組和Windows防火牆來進行Web訪問安全的限制。


對於Windows Server 2016的用戶來說,由於微軟在該產品周期做的幾個改動,目前需要通過以下的兩個額外設置來讓IIS和阿里雲NAS的SMB服務正確協同工作。

A用戶需要改動SMB client的一個注冊表項來支持對SMB share的匿名訪問。如下圖所示,用戶需要運行注冊表編輯器regedit來修改下面的注冊表值。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\AllowInsecureGuestAuth

用戶打開注冊表編輯器之后需要找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters, 然后用右鍵選取新建DWORD(32位)值。
創建並編輯該值AllowInsecureGuestAuth並將其設置為1。

除了注冊表項外,用戶還需要在IIS的網站設置中指定一個本地用戶來訪問網站在阿里雲NAS上的資源。具體的步驟如下面兩圖所示,用戶選取網站的基本設置,再通過連接為設置特定用戶,這里選用前面設置的用戶iis_user。

另外,由於IIS使用SMB share的方式下訪問一個文件時,IIS后台會有多次訪問SMB share操作,每次訪問的時間不長,但是多次的疊加可能會造成客戶端總時間比較長。改進的方式可以參考SMB2 文檔將其中提到的三個注冊表項都調大,比如600, 或者更大。需要注意的是這些注冊表項都在注冊表[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters]之下,分別是

  • FileInfoCacheLifetime
  • FileNotFoundCacheLifetime
  • DirectoryCacheLifetime
 
說明 如果找不到以上三個注冊表項,則按照 Windows 的字段格式要求進行創建。

除此之外,建議把js/css等網頁程序相關的內容放在本地,因為IIS訪問會非常頻繁。

IIS FTP服務的設置

很多IIS用戶希望用FTP來共享文件或進行網站內容發布。在這里我們介紹如何通過IIS設置FTP over SSL服務 (又名FTP-SSL, S-FTP, FTP Secure)。

  • 安裝SSL證書
    1. 用戶在IIS的服務器中選擇服務器證書,申請和管理服務器證書。

    2. 用戶指定服務器證書的名稱。
    3. 配置和創建SSL證書。
  • FTP站點設置
    1. 用戶在IIS的網站部分選擇添加FTP站點,和Web服務一樣,物理路徑需要使用UNC格式的SMB share路徑。在這個例子里,我們仍使用前面用過的Web service的www目錄。用戶可以根據需要選取myshare上其它目錄,也可以通過設置多個FTP站點利用不同的端口來提供對不同目錄的訪問。

    2. 用戶綁定提供FTP服務的IP地址,並分配端口號。這個例子里,我們出於安全的考慮沒有使用標准的21端口而是用2222端口來提供FTP的控制信息通道。需要格外注意的是,我們選擇需要SSL證書才能連接這個FTP站點,並指定使用前面創建的SSL證書。
    3. 用戶指定身份驗證方式為基本,並授權用戶iis_user讀寫權限。您也可以選取更多的授權用戶。

    4. 出於安全考慮,通過在IIS中打開服務器級別FTP防火牆支持來限制FTP數據通道的端口范圍,並選取應用。

    5. 為了使該端口范圍立即生效,需要在服務器管理器中重啟FTP服務。
    6. 出於安全考慮,建議用戶通過阿里雲的安全組設置來限制FTP客戶端的訪問。在下面的例子里,我們將已經設置的FTP控制及數據端口范圍只授權給一個客戶端IP訪問。您也可以授權給多個IP、一個或多個網段。
    7. 下面幾張圖展示了通過FTP客戶端WinSCP利用FTP over SSL來訪問我們的FTP站點的過程。
      接受服務器證書,只在客戶端第一次連接FTP站點才發生。
      設置協議類型,端口號和登錄信息。

      登錄后要求輸入密碼,即授權用戶所在IIS服務器上的密碼。


      數據連接建立,服務器讀取和傳輸遠程目錄信息。


      用戶完成初步連接,可以進行文件的上傳下載。

總結

本文通過例子介紹了如何結合阿里雲NAS的SMB協議支持和ECS Windows虛擬機,使用Windows內置的互聯網信息服務(IIS)來提供Web和FTP服務。阿里雲NAS服務還在不斷發展和演進中,后續會提供更好的協議服務和性能支持。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM