天天看點

用Windows IIS和阿裡雲NAS提供Web和FTP服務

阿裡雲檔案存儲服務nas(阿裡雲nas)是阿裡雲在2016年正式推出的公有雲上的網絡檔案系統實作。阿裡雲nas主要面向阿裡雲 ecs 執行個體、hpc、docker、彈性web和batchcompute 等計算節點提供檔案存儲服務。通過标準的檔案通路協定,使用者無需對現有應用做任何修改,即可在雲上使用具備無限容量及性能擴充、單一命名空間、多共享、高可靠和高可用等特性的分布式檔案系統。阿裡雲于2016年釋出了支援nfs網絡檔案系統通路協定的阿裡雲檔案系統(nas)。2017年3月,又增加了smb檔案系統通路協定的支援,正式對外公測。

 本文介紹如何結合阿裡雲nas的smb協定支援和ecs windows虛拟機,使用windows内置的網際網路資訊服務(iis)來提供web和ftp服務。

為了豐富檔案系統的協定支援和滿足客戶的相容性需求,阿裡雲nas在今年3月提供smb(server message block)檔案系統通路協定的支援,并開始公測。與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

1.0與smb 2.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上的資料,進而讓使用者的網站可以實作存儲和計算服務的分離,同時計算資源和存儲資源都可以支援按需彈性擴容, 通過阿裡雲提供的負載均衡服務由多個虛拟機來共同承載一個彈性容錯的網站架構。一個簡單的示意圖如下:

用Windows IIS和阿裡雲NAS提供Web和FTP服務

iis提供的ftp服務也同樣存在着非常廣泛的需求:很多web站點的管理者通過ftp來遠端管理web站點的内容;同時也有很多客戶希望利用windows虛拟機上的ftp服務在廣域網和阿裡雲之間傳輸和共享檔案。

這裡我們以iis 7.5 (windows server 2008 r2)的設定為例,來展示如何通過阿裡雲nas在阿裡雲上提供提供單節點的web和ftp服務。其它windows伺服器版本如windows

server 2008和windows server 2012的安裝和部署也類似。對于windows

 <b>需要着重指出的是,在公網環境裡提供</b><b>web 和ftp service的阿裡雲ecs虛拟機由于服務的開放性容易受到安全攻擊。我們在這裡給出的設定步驟着重于說明如何在功能上連接配接web服務與nas存儲,雖然有安全性的考慮但不能作為完整的安全配置和實作方案。使用者需要承擔安全方面的所有最終責任,從系統級别(如設定防火牆、ecs執行個體安全組和及時安裝作業系統更新檔)和服務級别(如使用阿裡雲的各個安全産品)來全面保障自己網站服務和資料的安全性。</b>

 <b>iis安裝</b>:

 以windows server 2008 r2為例,通過伺服器管理器添加iis角色并安裝iis的過程如下面幾張圖所示。在不同windows作業系統上安裝iis的詳細過程請參閱下面的微軟線上文檔:

<a href="https://technet.microsoft.com/zh-cn/library/hh831475(v=ws.11).aspx">安裝 iis 和 asp.net 子產品(windows server 2012 和2012 r2)</a>

 1. 使用者在伺服器管理器中選擇添加web伺服器(iis)角色。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

       2. 使用者選擇為web伺服器安裝的角色服務,處理基本的http功能以外,我們還包括了ftp服務及擴充,asp服務等,用于後面提供ftp over ssl服務和示範動态網頁腳本的使用。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

         3. 使用者選擇安裝,下面是安裝完成的提示界面。 

用Windows IIS和阿裡雲NAS提供Web和FTP服務

<b>nas smb檔案系統的建立和設定</b>:

 使用者的web服務資源及配置檔案可以集中存儲在阿裡雲nas的一個smb share上。在建立了一個支援smb的阿裡雲nas檔案系統之後,使用者通過設定權限組來保證目前web伺服器可以讀寫通路smb share對應的檔案系統。使用者可以使用vpc或者經典網絡來連接配接nas檔案系統和web伺服器。建立和使用阿裡雲nas

 在建立smb 檔案系統之後,使用者可以在檔案系統的預設share

“myshare”下面進一步建立目錄如www來存儲網站檔案。我們在myshare\www下建立兩個簡單的檔案并在後面以它們為例來說明整個操作流程:靜态網頁index.html和動态asp腳本test.asp。前者顯示“hello world!”,後者動态擷取并顯示目前時間。

&lt;html&gt;

  &lt;head&gt;

     &lt;title&gt;hello world in html&lt;/title&gt;

  &lt;/head&gt;

  &lt;body&gt;

     &lt;center&gt;&lt;h1&gt;hello world!&lt;/h1&gt;&lt;/center&gt;

  &lt;/body&gt;

&lt;/html&gt;

<b>index.html</b>

     this page was last refreshed on &lt;%= now() %&gt;.

&lt;/body&gt;

<b>test.asp</b>

用Windows IIS和阿裡雲NAS提供Web和FTP服務

出于安全和管理的考慮,我們在系統裡還加入了一個新使用者“iis_user”。在後面的例子中,在提供ftp服務或者在windows server2016上運作時,我們選擇通過該使用者而不是系統管理者來進行資料通路。

session中映射的網絡驅動器如(z:\)是不可直接使用的,否則會出現通路失敗的錯誤。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

通過用本地浏覽器通路localhost或者127.0.0.1的index.html和test.asp,我們可以确認iis現在已經可以正常進行web服務了。伺服器使用者可以進一步設定阿裡雲安全組和windows防火牆來進行web通路安全的限制。

用Windows IIS和阿裡雲NAS提供Web和FTP服務
用Windows IIS和阿裡雲NAS提供Web和FTP服務

對于windows server 2016的使用者來說,由于微軟在該産品周期做的幾個改動,目前需要通過以下的兩個額外設定來讓iis和阿裡雲nas的smb服務正确協同工作。

1.  使用者需要改動smb

client的一個系統資料庫項來支援對smb share的匿名通路。如下圖所示,使用者需要運作系統資料庫編輯器regedit來修改下面的系統資料庫值。

 hkey_local_machine\system\currentcontrolset\services\lanmanworkstation\parameters\allowinsecureguestauth

 具體來說,在使用者打開系統資料庫編輯器之後,需要找到hkey_local_machine\system\currentcontrolset\services\lanmanworkstation\parameters, 然後用右鍵選取建立dword(32位)值。

如果通過指令行修改,指令如下:

reg add hkey_local_machine\system\currentcontrolset\services\lanmanworkstation\parameters /v allowinsecureguestauth /t reg_dword /d 1

用Windows IIS和阿裡雲NAS提供Web和FTP服務

使用者接着建立并編輯該值allowinsecureguestauth<b>并将其設定為</b><b>1。</b>

用Windows IIS和阿裡雲NAS提供Web和FTP服務

  2.  除了系統資料庫項外,使用者還需要在iis的網站設定中指定一個本地使用者來通路網站在阿裡雲nas上的資源。具體的步驟如下面兩圖所示,使用者選取網站的基本設定,再通過“連接配接為”設定特定使用者,這裡我們選用前面設定的使用者“iis_user”。

用Windows IIS和阿裡雲NAS提供Web和FTP服務
用Windows IIS和阿裡雲NAS提供Web和FTP服務

 很多iis使用者希望用ftp來共享檔案或進行網站内容釋出。在這裡我們介紹如何通過iis

設定ftp over ssl服務 (又名ftp-ssl, s-ftp, ftp secure)。

 <b>安裝</b><b>ssl證書</b>:

             1.  使用者 在iis的伺服器部分選擇“伺服器證書”,申請和管理伺服器證書。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

2.  使用者指定伺服器證書的名稱。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

3.  配置和建立成功ssl證書。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

 <b>ftp站點設定</b>:

 1. 使用者在iis的網站部分選擇“添加ftp站點”,和web服務一樣,實體路徑需要使用unc格式的smb share路徑。在這個例子裡,我們仍使用前面用過的web service的www目錄。使用者可以根據需要選取myshare上其它目錄,也可以通過設定多個ftp站點利用不同的端口來提供對不同目錄的通路。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

2. 使用者綁定提供ftp服務的ip位址,并配置設定端口号。這個例子裡,我們出于安全的考慮沒有使用标準的21端口而是用2222端口來提供ftp的控制資訊通道。<b>需要格外注意的是,我們選擇需要</b><b>ssl證書才能連接配接這個ftp站點,并指定使用前面建立的ssl證書。</b> 

用Windows IIS和阿裡雲NAS提供Web和FTP服務

3. 使用者指定身份驗證方式為“基本”,并且将讀寫權限提供給使用者iis_user。如果需要的話,這裡也可以選取更多的授權使用者。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

 4. 處于安全考慮,使用者可以如下圖所示,在通過在iis中打開伺服器級别“ftp防火牆支援”來限制ftp資料通道的端口範圍,并選取“應用”。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

  在這之後,為了該端口範圍立即生效,需要在伺服器管理器中重新開機ftp服務。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

5.   處于安全考慮,建議使用者通過阿裡雲的安全組設定來限制ftp用戶端的通路。在下面的例子裡,我們将已經設定的ftp控制及資料端口範圍隻授權給一個用戶端ip通路。需要的話使用者也可以授權給多個ip或者一個多個網段。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

6. 下面幾張圖展示了通過ftp用戶端winscp利用ftp over ssl來通路我們的ftp站點的過程。

接受伺服器證書,隻在用戶端第一次連接配接ftp站點才發生。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

  設定協定類型,端口号和登入資訊。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

  登入後要求輸入密碼,即授權使用者所在iis伺服器上的密碼。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

  資料連接配接建立,伺服器讀取和傳輸遠端目錄資訊。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

  使用者完成初步連接配接,可以進行檔案的上傳下載下傳。

用Windows IIS和阿裡雲NAS提供Web和FTP服務

本文通過例子介紹了如何結合阿裡雲nas的smb協定支援和ecs windows虛拟機,使用windows内置的網際網路資訊服務(iis)來提供web和ftp服務。阿裡雲nas服務還在不斷發展和演進中,後續會提供更好的協定服務和性能支援。

繼續閱讀