在 SharePoint 2013 中使用要求管理員
英文原文已於 2012 年 9 月 15 日星期六發佈
我尚未看見許多關於本主題的資訊,因此坦白說,我認為需要花些時間,才能取得一些適用於要求管理員 (RM) 的 PowerShell。對於不熟悉 RM 的人來說,這是 SharePoint 2013 的新功能,其設計目的是進行 SharePoint 要求的路由傳送與節流處理。藉由具備連入要求本質的知識 (例如,使用者代理程式、要求的 URL 或來源 IP),SharePoint 可自訂每個要求的回應。它會根據您定義的規則進行路由傳送,或對要求進行完全節流處理。RM 規則會針對每個 Web 應用程式進行套用,就像是在 SharePoint 2010 中進行節流處理一樣。
在高階方面,RM 的目標如下:
- RM 可以路由傳送到健康情況較好的 WFE,讓健康情況較差的 WFE 保持運作
- RM 可以識別有害的要求並立即拒絕它們
- RM 可以為較低優先順序的要求 (Bot) 進行節流處理,為較高優先順序的要求 (使用者) 提供服務,藉以設定要求的優先順序
- RM 可以傳送特定類型的所有要求,例如,搜尋特定電腦
- 隔離的流量可以協助疑難排解單一電腦上的錯誤
- RM 可以將大量要求傳送給功能更強大的 WFE
路由傳送和節流規則會以如下方式來實作:
- 路由傳送規則會路由傳送要求,並關聯至 MachinePools
- MachinePools 包含伺服器
- 伺服器會使用權數來進行路由傳送 - 靜態權數與健康情況權數
- 靜態權數對於 WFE 而言是固定的;健康情況權數則會根據健康情況分數動態變更
嗯,這就是它們的基本概觀 - 如果您想要了解更多關於 RM 的功能與使用方式的詳細資訊,應該可以在 TechNet 上找到其他文件。如果您正在閱讀本文,我假設您已具備足夠的相關知識 (或已具備足夠的好奇心),想實際利用它來進行一些工作。因此,我將在此處列出一些 PowerShell,以協助您開始使用。我發現了一些使用 RM 時非常有用的 Cmdlet。您經歷的基本程序如下:
- 取得對於 SPWebApplication 的參考
- 取得對於 Web 應用程式之要求管理設定的參考
- 建立一或多個條件
- 要求必須符合規則的「所有」條件,才能符合該規則 (就像它們是使用 AND 結合在一起)
- 取得對於電腦集區的參考,或視需要建立一個新參考
- 新增規則
現在讓我們逐步說明下列範例:
#取得對於 SPWebApplication 的參考
$w = Get-SPWebApplication -identity https://foo
#取得對於 Web 應用程式之要求管理設定的參考
$rmset = $w | Get-SPRequestManagementSettings
#建立一或多個條件
$criteria = New-SPRequestManagementRuleCriteria -Property Url -Value ".*\.docx" -MatchType Regex
#取得對於電腦集區的參考,或視需要建立一個新參考
$mp = Add-SPRoutingMachinePool -RequestManagementSettings $rmset -Name MyRulePool -MachineTargets ($rmset | Get-SPRoutingMachineInfo -Name WFE1)
#新增規則
$rmset | Add-SPRoutingRule -Name "Word Doc Rule" -Criteria $criteria -MachinePool $mp
現在讓我們來看看該路由傳送規則:
$rr = $rmset | Get-SPRoutingRule -Name "Word Doc Rule"
#看一下條件
$rr.Criteria
#變更路由傳送規則的到期日與時間
$rr.Expiration = "12/25/2013 5:00:00 PM"
就是這樣 - 現在您有了路由傳送規則。建立節流規則的方法非常類似:
#新增會尋找 OneNote 要求的新條件規則。它會透過檢查要求中的 UserAgent 並尋找 OneNote 所使用的標頭來完成此動作。
$criteria = New-SPRequestManagementRuleCriteria -Property UserAgent -Value ".*Microsoft Office OneNote 2010*" -MatchType Regex
#新增節流規則,在伺服器健康情況的分數達到 8 時使用條件規則。
#請注意,節流規則會套用到整個 Web 應用程式,#而不是套用到個別電腦,因此,您不能
#將電腦集區與它搭配使用。
$rmset | Add-SPThrottlingRule -Name "OneNote Throttle Rule" -Criteria $criteria -Threshold 8
#現在檢視 Web 應用程式的所有路由傳送規則
$rmset.RoutingRules
#檢視所有節流規則
$rmset.ThrottlingRules
現在讓我們深入查看使用電腦集區的方式:
#取得所有可用的路由傳送電腦
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Availability Available
#取得特定集區中的每一部電腦
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool -Name yourPoolName | % { $_.MachineTargets} | Format-Table
#針對特定的 Web 應用程式,將電腦 WFE1 新增至每個電腦集區;萬分感謝 Tyler 協助我完成此功能 - 我真的不是 PowerShell 的專業人員
$a = Get-SPWebApplication -Identity https://contoso
$b = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool | % { $_ | Set-SPRoutingMachinePool -machinetargets ($_.machinetargets + $b) }
#將電腦 WFE1 新增至特定集區
$a = Get-SPWebApplication -Identity https://contoso
$b = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1
$pool = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool -Name yourPoolName
$pool | Set-SPRoutingMachinePool -MachineTargets ($pool.MachineTargets + $b)
#從每個電腦集區移除 WFE1
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1 | Remove-SPRoutingMachineInfo
好了,您已經擁有此功能了,各位。這應該就足以讓您開始使用此功能。
這是翻譯後的部落格文章。英文原文請參閱 Working with Request Manager in SharePoint 2013