使用應用程式要求路由設定 3 層部署架構
由 IIS 小組
概觀
本主題會引導您使用應用程式要求路由設定 3 層部署架構的步驟。 3 層部署架構包含 Web 層、應用伺服器層和資料層,如下所示:
一般而言,在此部署案例中,靜態內容是由第 1 層伺服器提供服務,而動態內容則由第 2 層伺服器的商業規則提供服務。
Goal
若要使用應用程式要求路由設定 3 層部署架構。 在本逐步解說中,重點在於如何將ARR伺服器設定為直接從ARR伺服器提供靜態內容,同時將動態內容的要求轉送至應用程式伺服器。
必要條件
本逐步解說需要下列必要條件:
- Windows 2008 上的 IIS 7.0 或更新版本(任何 SKU) 或更新版本
- Microsoft 應用程式要求路由第 1 版和相依模組
- 至少有兩部具有工作網站和應用程式的內容伺服器
- 應用程式要求路由伺服器上可用的靜態內容
請遵循本檔中所述的步驟來安裝應用程式要求路由。
作為另一個必要條件,您必須使用定義和設定應用程式要求路由 (ARR) 伺服器群組中所述的步驟來定義和設定伺服器數位。
步驟 1 – 變更 URL 重寫規則以篩選靜態要求。
在此步驟中,URL 重寫規則會變更,以便直接從應用程式要求路由伺服器提供特定擴充功能或路徑的要求。 查看擴展名,例如.jpg或.gif,即可識別靜態要求。 如果靜態資源包含在特定資料夾中,例如 /images/,則URL重寫規則可以尋找URL中的路徑。
在本逐步解說中,您將變更 URL 重寫規則,以尋找.jpg和.css延伸模組,以及 /images/ 資料夾。 如果要求的資源具有.jpg或.css擴充功能,則會直接從ARR伺服器提供服務。 同樣地,如果要求的 URL 包含 /images/,則會從 ARR 伺服器提供此要求。 所有其他要求都會轉送至ARR伺服器後方的應用程式伺服器。
繼續之前,請確定 ARR 伺服器上有靜態內容可供使用。 您可以在 ARR 伺服器上本機取得內容,也可以使用共用內容。
若要使用 UI 變更 URL 重寫規則:
- 啟動 IIS 管理員。
- 選取伺服器陣列 myServerFarm,這是在定義及設定應用程式要求路由 (ARR) 伺服器群組中建立的。
- 顯示下列圖示:
- 按兩下 [ 路由規則]。 在具有下列擴展名的要求中輸入 *.jpg 和 *.css,不會轉寄文本框。 多個延伸模組會以逗號 (,) 分隔。 若要比對 URL 中的路徑,請在 [要求] 中輸入 */image/* ,且沒有轉寄下列模式的文字框。 通配符 ≦ 用來比對路徑 /image/前後的任何字元。
- 若要確認靜態映像是從ARR伺服器提供,請檢查記錄。 根據預設,記錄檔位於
c:\inetpub\logs\LogFiles\
中。 在 ARR 伺服器後方的應用程式伺服器上,不應該有任何要求參考記錄檔中的 *.jpg、*.css 或 */images/* 。
若要使用命令行變更 URL 重寫規則:
使用系統管理員權限開啟命令提示字元。
瀏覽至
%windir%\system32\inetsrv
。輸入下列專案以清除所有 URL 重寫規則:
appcmd.exe clear config -section:system.webServer/rewrite/globalRules
若要變更路由規則,讓具有延伸模組 *.jpg 和 *.css 的資源要求,以及不符合 */images/* 的路徑不會轉送至應用程式伺服器,請輸入:
appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True']" /commit:apphost
appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].match.url:"*" /commit:apphost
appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions. [input='EXT_{URL}',negate='True',pattern='*.jpg']" /commit:apphost
appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions. [input='EXT_{URL}',negate='True',pattern='*.css']" /commit:apphost
appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].conditions. [input='{URL}',negate='True',pattern='*/images/*']" /commit:apphost
appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.type:"Rewrite" /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.url:"http://myServerFarm1/{R:0}" /commit:apphost
摘要
您現在已使用應用程式要求路由UI成功變更URL重寫規則,以啟用3層部署架構案例。 如需其他應用程式要求路由屬性和功能,請參閱 使用應用程式要求路由的 HTTP 負載平衡 (ARR) 逐步解說。
當 ARR 當做反向 Proxy 使用時,當搭配 URL Rewrite 第 2 版使用時,案例可以進一步增強,此功能可 重寫響應標頭和實體主體。