解析plugin-cfg.xml文件

Config(必需)

此元素啓動 WebSphere HTTP 插件配置文件。它可以包含一個或多個下列元素和屬性:

IgnoreDNSFailures
指定啓動時插件是否忽略配置中的 DNS 故障。當設置爲 true 時,如果每個 ServerCluster 中至少有一個服務器能夠解析主機名,則插件忽略配置中的 DNS 故障併成功啓動。任何主機名無法解析的服務器在配置期間標記爲不可用。稍後在路由請求期間不會嘗試解析該主機名。如果發生 DNS 故障,則日誌消息將被寫入插件日誌文件,並繼續插件初始化而不會導致無法啓動 Web 服務器。缺省值爲 false,意味着 DNS 故障會導致 Web 服務器不啓動。
RefreshInterval
插件應該檢查配置文件以查看是否發生更新或更改的時間間隔(以秒計)。插件檢查文件自上次裝入插件配置以來,是否有任何修改。

在經常發生更改的開發環境中,低於缺省設置 60 的設置更合適些。在生產環境中,因爲不會經常更新配置,所以比缺省值高的值更合適些。如果由於某些原因重新裝入插件失敗,則一條消息被寫入插件日誌文件,並使用先前的配置,直到成功重新裝入插件配置文件。如果您還未看到對插件配置的更改,則檢查插件日誌文件以獲取對問題的說明。

ASDisableNagle
指定用戶是否要對插件和應用程序服務器之間的連接禁用 nagle 算法。缺省情況下,nagle 算法處於啓用狀態。

值可以爲 truefalse

IISDisableNagle
指定用戶是否要在 Microsoft Internet Informations Services(IIS)上禁用 nagle 算法。缺省情況下,nagle 算法處於啓用狀態。

值可以爲 truefalse

AppServerPortPreference
此屬性用於指定 Application Server 應該使用哪個端口號構建 sendRedirect 的 URI。可以指定以下值:
  • webserverPort(如果要使用入局 HTTP 請求的主機頭的端口號)。
  • hostHeader(如果要使用 Web 服務器接收請求的端口號)。

缺省值爲 hostHeader

ResponseChunkSize
插件讀取響應主體(以 64k 塊計),直到讀取所有的響應數據。此方法會導致包含大量數據的響應主體請求的性能問題。

ResponseChunkSize 屬性使您可以指定讀取響應主體時要使用的最大塊大小。例如,Config ResponseChunkSize="N">,其中 N 等於塊大小(以千字節計)。

如果響應主體的內容長度是未知的,則會分配 N 千字節的緩衝區大小,並且以 N 千字節大小的塊讀取主體,直到讀完整個主體。如果內容長度已知,則使用內容長度或 N(哪一個較小就用哪一個)的緩衝區大小以讀取響應主體。

缺省塊大小爲 64k。

AcceptAllContent
指定當請求頭中包含 Content-Length 或 Transfer-encoding 頭時,用戶是否可以在 POST、PUT、GET 和 HEAD 請求中包含內容。您可以爲此屬性指定下列某個值:
  • 如果內容是期望的並要爲所有請求讀取該內容,則請指定 True
  • 如果內容是期望的並要僅爲 POST 和 PUT 請求讀取該內容,則請指定 False。

False 爲缺省值。

ChunkedResponse
指定當對客戶機的響應中包含 Transfer-Encoding : Chunked 響應頭時,插件是否應該將該響應進行分塊。

此屬性僅適用於 IIS、IPlanet 和 Domino Web 服務器。IBM HTTP Server 自動處理是否將對客戶機的響應進行分塊。

您可以爲此屬性指定下列某個值:

  • 如果當對客戶機的響應中包含 Transfer-Encoding : Chunked 響應頭時插件要將該響應進行分塊,則指定 true
  • 如果不要將該響應分塊,則指定 false

false 是缺省值。

IISPluginPriority
指定 IIS Web 服務器裝入 WebSphere Web 服務器插件的優先級。您可以爲此屬性指定下列某個值:
  • High
  • Medium
  • Low

缺省值爲 High

注意:
  • IIS Web 服務器在啓動期間使用此值。因此,必須重新啓動 Web 服務器,此更改纔會生效。
  • 缺省值 High 確保所有請求在由任何其他過濾器/擴展處理前已由 WebSphere Web 服務器插件處理。如果使用優先級 Medium 或 Low 時發生問題,則必須重新排列干預過濾器/擴展的順序或更改它們的優先級。
Log
日誌描述由插件寫的日誌消息的位置和級別。如果配置文件中未指定日誌,則在一些情況下,日誌消息將被寫到 Web 服務器錯誤日誌中。

例如,您可以指定以下各項:

<Log LogLevel="Error" Name="/log_directory/filename"/>
Name(每個 Log 必須有且只能有一個該屬性)
日誌文件的標準路徑,插件會將錯誤消息寫入該日誌文件。
注: 日期與時間戳記以及進程標識都不再追加到您爲插件日誌文件指定的名稱。因此,將創建單個 Web 服務器插件日誌文件,而不是創建多個按日期來區別的日誌文件。此行爲與 V5.x 的行爲有所不同。
LogLevel(每個 Log 可以有零個或一個該屬性)
插件應該寫入日誌的日誌消息的詳細信息級別。您可以爲此屬性指定下列某個值:
  • Trace。此請求過程中的全部步驟都詳細記錄。
  • Stats。記錄了爲每個請求選擇的服務器和其他與請求處理相關的負載均衡信息。
  • Warn。所有來自異常請求處理的警告和錯誤消息被記錄。
  • Error。僅記錄來自異常請求處理導致的錯誤消息。
  • Debug。記錄處理請求時執行的所有關鍵步驟。
  • Detail。記錄關於請求和響應的所有信息。

如果沒有爲 Log 元素指定 LogLevel,則將使用缺省值 Error。

將級別設置爲 Trace 時,請小心。許多消息在此級別記錄,該級別會導致文件系統非常快速地用盡。決不應該在正常運作環境中使用 Trace 設置,因爲它會對性能有負面影響。

Property Name="esiEnable" Value="true/false"
用來啓用或禁用 Edge Side Include(ESI)處理器。如果 ESI 處理器和于禁用狀態,則將忽略此文件中的其他 ESI 元素。

Value 可以設置爲 truefalse。缺省情況下,ESI 處理器處於啓用狀態(已設置爲 true)。

Property Name="esiMaxCacheSize" Value="interger"
一個整數,它指定高速緩存的最大大小(以 1K 字節計)。高速緩存的缺省最大大小是 1024K 字節(1 兆字節)。如果高速緩存已滿,則要從高速緩存逐出的第一個條目是最接近其截止時間的條目。
Property Name="ESIInvalidationMonitor" Value="true/false"
用來指示 ESI 處理器是否應接收來自 Application Server 的失效。

Value 可以設置爲 truefalse。缺省情況下,此屬性設置爲 false

對於 WebSphere for z/OS HTTP Server 插件,必須始終將此屬性設置爲 false

Property Name="FIPSEnable" Value="true/false"
用來指示是否應啓用聯合信息處理標準(FIPS)來建立與 Application Server 的安全連接。如果 Application Server 上啓用了 FIPS,則應將此屬性設置爲 true。

Value 可以設置爲 truefalse。缺省情況下,此屬性設置爲 false

ServerCluster(每個 Config 可以有一個或多個該元素)
一組服務器,這些服務器通常配置爲對同一類型的請求提供服務。

最簡單的情況是集羣僅包含一個服務器定義。在定義了多個服務器的情況下,插件將使用循環法或 Random 算法將負載均衡地分佈到所定義的服務器上。缺省值爲“循環法”(Round Robin)。

以下是 ServerCluster 元素的示例

<ServerCluster CloneSeparatorChange="false"
        LoadBalance="Round Robin" Name="Cluster1"
        PostSizeLimit="10000000" RemoveSpecialHeaders="true" 
        RetryInterval="60">
<Server
CloneID="BA36BEC1EB243D8B000000E4000000030926301B"
            ConnectTimeout="0" ExtendedHandshake="false"
            LoadBalanceWeight="2" MaxConnections="0"
            Name="SY1_ClusterMember1" WaitForContinue="false">
<Transport Hostname="BOSSXXXX.PLEX1.L2.IBM.COM" Port="9084" Protocol="http"/>
<Transport Hostname="BOSSXXXX.PLEX1.L2.IBM.COM" Port="0" Protocol="https">
<Property Name="Keyring" value="/WebSphere/V6R0M0/DeploymentManager/etc/
            plugin-key.kdb"/>
<Property Name="Stashfile" value=""/WebSphere/V6R0M0/DeploymentManager/etc/
            plugin-key.sth"/>
<Property Name="certLabel" Value="selfsigned"/>
</Transport>
</Server>
<Server CloneID="BA36BED017FDF40E000000E4000000030926301B"
            ConnectTimeout="0" ExtendedHandshake="false"
            LoadBalanceWeight="2" MaxConnections="0"
            Name="SY1_ClusterMember2" WaitForContinue="false">
<Transport Hostname="BOSSXXXX.PLEX1.L2.IBM.COM" Port="9085" Protocol="http"/>
<Transport Hostname="BOSSXXXX.PLEX1.L2.IBM.COM" Port="0" Protocol="https">
<Property Name="Keyring" value="/WebSphere/V6R0M0/DeploymentManager/etc/
            plugin-key.kdb"/
<Property Name="Stashfile" value="/WebSphere/V6R0M0/DeploymentManager/etc/
            plugin-key.sth"/>
<Property Name="certLabel" Value="selfsigned"/>
</Transport>
</Server>
<PrimaryServers>
<Server Name="Server Name="SY1_ClusterMember1"/>
<Server Name="Server Name="SY1_ClusterMember2"/>
</PrimaryServers>
</ServerCluster>
注: 如果您正在使用 HTTP Server plug-in for z/OS,則將忽略此處包括的 Property Name=keyringProperty Name=stashfile 元素(如果這些元素包括在該插件的 plugin-cfg.xml 文件中)。HTTP Plug-in for z/OS 插件使用在主管 HTTP Server 的 httpd.conf 文件中指定的 SSL 設置,而不會在 plugin-cfg.xml 文件中查找這些元素。
Name(每個 ServerCluster 必須有且只能有一個該屬性)
將用於此組服務器的邏輯名或管理名。
LoadBalance(每個 ServerCluster 可以有零個或一個該屬性)
缺省負載均衡類型是循環法。

循環法實現具有隨機起始點。將隨機檢取第一個服務器。循環法將用於從該點開始檢取服務器。此實現確保基於多個進程的 Web 服務器中,發送第一個請求到同一個 Application Server 並不會啓動所有進程。

RetryInterval(每個 ServerCluster 可以有零個或一個該屬性)
一個指定時間長度的整數,這段時間應該是從將服務器標記爲當機的時間到插件重試連接的時間。缺省值爲 60 秒。
RemoveSpecialHeaders(每個 ServerCluster 可以有零個或一個該屬性)
在將請求轉發到應用程序服務器之前,插件將一些特殊的頭添加到請求。這些頭存儲關於應用程序將需要使用的請求的信息。缺省情況下,插件在添加它假定要添加的頭前,將從入局請求中除去這些頭。

值可以爲 truefalse。如果將該屬性設置爲 false,則不會除去入局請求中的頭,這是一個潛在的安全性漏洞。

CloneSeparatorChange(每個 ServerCluster 可以有零個或一個該屬性)
某些普及型設備無法處理冒號字符(:),該字符用於分隔與會話親緣關係聯合的克隆標識。服務器組的此屬性通知插件將使用加號(+)作爲克隆分隔符。您必須更改應用程序服務器配置,以便應用程序服務器也使用加號來分隔克隆標識。

值可以爲 truefalse

PostSizeLimit(每個 ServerCluster 可以有零個或一個該屬性)
插件嘗試將請求發送到應用程序服務器時所允許的請求內容最大字節數。如果接收到大於此大小的請求,則插件不會發送該請求。缺省值爲 -1 個字節,表明發佈大小沒有限制。
[Version 6.0.1 and later] PostBufferSize(每個 ServerCluster 可以有零個或一個該屬性)
指定讀取 HTTP 請求內容時使用的最大緩衝區大小(以千字節計)。如果最初接收到請求的應用程序服務器無法處理該請求,則將此緩衝區中包含的數據發送給另一應用程序服務器以嘗試讓該應用程序服務器處理此請求。

此選項改進了插件的可用性。現在,如果所選應用程序服務器未響應,則將重試包含內容但未完成的請求。如果值設置爲零,則不會緩衝和重試包含內容的請求。缺省值爲 64。

Server(每個 ServerCluster 可以有一個或多個該元素)
一個 WebSphere Application Server 實例,已配置它來處理使用插件配置的路由規則路由至它的請求。該服務器應該對應於在本地機器或遠程機器上運行的應用程序服務器。
Name(每個 Server 必須有且只能有一個該屬性)
服務器的管理名或邏輯名。
CloneID(每個 Server 可以有零個或一個該屬性) (參考web容器定製屬性HttpSessionCloneId)
如果請求的 HTTP cookie 頭(或 URL,如果使用 URL 重寫的話)中包含此唯一標識,則只要符合所有其他路由規則,插件就會將該請求路由至此特定服務器(。如果在 Server 中未指定 CloneID,則不會對此服務器啓用會話親緣關係。

此屬性將與會話親緣關係一起使用。當設置了此屬性時,插件檢查入局 cookie 頭或 URL 中是否有 JSESSIONID。如果找到了 JSESSIONID,則插件查找一個或多個克隆標識。如果找到了克隆標識,且與對此屬性指定的值匹配,則會將請求發送到此服務器而不是均衡地加載在集羣中。

如果您不打算使用會話親緣關係,則最好從配置中除去這些克隆標識,因爲設置這些標識會增加插件處理請求時的負載。如果插件中沒有克隆標識,則假定會話親緣關係未打開,並且請求將均衡地加載在集羣中。

WaitForContinue(每個 Server 可以有零個或一個該屬性)
指定在將請求內容發送到應用程序服務器之前,是否要使用 HTTP 1.1 100 Continue 支持。可能的屬性值爲 truefalse。缺省值爲 false;插件在發送請求內容之前,不會等待來自應用程序服務器的 100 Continue 響應,因爲這會降低性能。

對於 POST 請求,將忽略此屬性,以便在應用程序服務器由於保持活動超時而關閉連接時,不會發生故障。

當配置插件以使用某些類型的代理防火牆時,請啓用此功能(設置爲 true)。

LoadBalanceWeight(每個 Server 可以有零個或一個該屬性)
指定當插件執行加權循環法負載均衡時,與此服務器相關聯的權重。服務器的開始值可以爲 020 之間的任何整數。然而,對於已關閉的服務器,只應該指定零。

此屬性的算法會遞減服務器集羣內的所有權重,直到所有權重達到零。在對特定服務器指定的權重達到零之後,在集羣中的所有服務器權重爲零之前,不會再將請求路由至該服務器。在所有服務器達到零之後,將復位集羣中所有服務器的權重,並且該算法重新開始。

當某個服務器已關閉時,建議您將該服務器的權重設置爲零。然後插件可以復位仍在運行的服務器的權重,並維持適當的負載均衡。

ConnectTimeout(每個 Server 可以有零個或一個該屬性)
Server 元素的 ConnectTimeou 屬性使插件可以執行與應用程序服務器的非分塊連接。當插件無法聯繫目標以確定端口是可用還是不可用時,非分塊連接是有益的。

如果未指定 ConnectTimeout 值,則插件執行分塊連接,插件在操作系統超時(根據平臺,它可以長達 2 分鐘)前位於該連接中,並且該連接允許插件將服務器標記爲不可用。值 0 導致插件執行分塊連接。大於 0 的值指定您要插件等待成功連接的秒數。如果在該時間間隔後不發生連接,則插件將服務器標記爲不可用並故障轉移到集羣中定義的另一臺服務器。

ExtendedHandshake(每個 Server 可以有零個或一個該屬性)
當代理防火牆在插件和應用程序服務器之間時,則使用 ExtendedHandshake 屬性。在這種情況下,插件不會像期望的那樣執行故障轉移。

當 connect() 失敗時插件標記服務器爲當機。但是,當代理防火牆在插件和應用程序服務器之間時,即使後端應用程序服務器當機了,connect() 也會成功。這導致插件沒有正確地故障轉移到其他應用程序服務器。

插件與應用程序服務器執行某些握手以確保它在發送請求前已啓動。這使插件能夠在應用程序服務器當機時執行故障轉移。

值可以爲 truefalse

MaxConnections(每個 Server 有一個該元素)
MaxConnections 屬性用於指定可以及時流經任何點上的 Web 服務器進程的、與 Application Server 的最大暫掛連接數。
例如,假設:
  • 此應用程序服務器前端有 5 個運行 IBM HTTP Server 的節點。
  • 每個節點啓動 2 個進程。
  • MaxConnections 屬性設置爲 50。

在此示例中,應用程序服務器可以潛在地獲取最多 500 個連接。(用節點數 5 乘以進程數 2,然後將得數乘以爲 MaxConnections 屬性指定的數字 50,得到總數 500 個連接。)

在 z/OS 平臺上此屬性不是必要的。z/OS 控制器與 WLM 共同動態地處理新連接。

缺省情況下,MaxConnections 設置爲 -1。如果此屬性設置爲零或 -1,則到應用程序服務器的暫掛連接數沒有限制。

Transport(每個 Server 可以有一個或多個該元素)
用於對特定 WebSphere Application Server 實例的讀取和寫入請求的傳輸。傳輸提供一些信息,需要這些信息來確定請求將發送至的應用程序服務器的位置。如果 Server 已將多個傳輸定義爲使用相同協議,則將使用第一個傳輸。

可以將 Server 配置爲具有一個非安全傳輸和一個使用 SSL 的傳輸。在此配置中,將執行匹配的入局請求協議來確定用來將請求發送到應用程序服務器的適當傳輸。

Hostname(每個 Transport 必須有且只能有一個該屬性)
正在運行 WebSphere Application Server 實例的機器的主機名或 IP 地址。
Port(每個 Transport 必須有且只能有一個該屬性)
WebSphere Application Server 實例進行偵聽所使用的端口。
Protocol(每個 Transport 必須有且只能有一個該屬性)
當通過此傳輸進行通信時要使用的協議 - HTTP 或 HTTPS。
Property(每個 Transport 可以有零個、一個或多個該元素)
當 Transport 的 Protocol 設置爲 HTTPS 時,請使用此元素來提供各種初始化參數,如 password、keyring 和 stashfile。例如,包含這些元素的 plugin_cfg.xml 文件的一部分可能類似於以下內容:
<Transport Hostname="192.168.1.2" Port="9443" Protocol="HTTPS">
<Property Name="keyring" value="c:/WebSphere/AppServer/keys/keyring.kdb"/>
<Property Name="stashfile" value="c:/WebSphere/AppServer/keys/keyring.sth"/>
<Property Name="password" value="WebAS"/>
注: 使用 iKeyMan 查看 plugin-key.kdb 文件的缺省密碼是 WebAS。
Name(每個 Property 必須有且只能有一個該屬性)
正在定義的 Property 的名稱。傳輸可識別的受支持名稱爲 keyring、stashfile 和 password。
注: password 是可以對 WebSphere HTTP for z/OS 插件指定的唯一名稱。將忽略 keyring 和 stashfile(如果指定了它們)。
Value(每個 Property 必須有且只能有一個該屬性)
正在定義的 Property 的值。
ServerIOTimeout
Server 元素的 ServerIOTimeout 屬性使插件能夠設置將請求發送至應用程序服務器以及從應用程序服務器讀取響應時的超時值(以秒計)。如果未對 ServerIOTimeout 屬性設置值,則插件在缺省情況下使用分塊 I/O 來將請求寫至應用程序服務器以及從應用程序服務器讀取響應,直到 TCP 連接超時爲止。例如,如果您指定:
<Server Name="server1" ServerIOTimeout=300>

在這種情況下,如果應用程序服務器停止對請求進行響應,則插件會等待 300 秒(5 分鐘),然後使 TCP 連接超時。如果將 ServerIOTimeout 屬性設置爲合理的值,則插件能夠較快地使連接超時,並在可能時將請求傳送到另一個應用程序服務器。

在選擇此屬性的值時,請記住,應用程序服務器處理請求有時可能需要幾分鐘的時間。如果將 ServerIOTimeout 屬性的值設置得太小,可能會導致插件將不正確的服務器錯誤響應發送到客戶機。

ClusterAddress(每個 ServerCluster 可以有零個或一個該元素)
ClusterAddress 類似於 Server 元素,您可以在其中像對 Server 元素一樣指定相同的屬性和元素。差別在於,在一個 ServerCluster 中,您只能定義一個 ClusterAddress。當您因爲在插件和應用程序服務器之間已具有某種類型的負載均衡器而不希望插件執行任何類型的負載均衡時,請使用 ClusterAddress。
重要: 如果您包括 ClusterAddress 標記,則您必須在該標記上包括 Name 屬性。插件使用 Name 屬性來使集羣地址與正確的主機和端口相關聯。如果您未指定 Name 屬性,則插件給集羣地址分配對使用相同主機和端口的服務器指定的名稱。
<ClusterAddress Name="MyClusterAddr">
<Transport Hostname="192.168.1.2" Port="9080" Protocol="HTTP"/>
<Transport Hostname="192.168.1.2" Port="9443" Protocol="HTTPS">
</ClusterAddress>

如果接收到未建立親緣關係的請求,則插件將它路由至集羣地址(如果已定義)。如果已建立親緣關係,則插件會完全繞過集羣地址而將請求直接路由到克隆。如果沒有爲服務器集羣定義集羣地址,則插件會將負載均衡地分佈到主服務器列表中的服務器上。

PrimaryServers(每個服務器集羣可以有零個或一個該元素)
指定插件要將對此集羣的請求路由至的服務器列表。如果未指定主服務器列表,則插件會將請求路由至爲服務器集羣定義的服務器。
BackupServers(每個服務器集羣可以有零個或一個該元素)
指定在主服務器列表中指定的所有服務器都不可用時,應該將請求發送至的服務器列表。插件不會將負載均衡地分佈在備份服務器上,但它會按順序遍歷該列表,直到列表中沒有服務器,或直到成功發送請求並且從應用程序服務器接收到響應爲止。
VirtualHostGroup
將在 HTTP Host 頭中指定的一組虛擬主機名。使您能夠將配置爲處理相似類型請求的虛擬主機定義組合到一起。

以下是 VirtualHost Group 元素和相關聯的元素及屬性的示例

<VirtualHostGroup Name="Hosts">
<VirtualHost Name="www.x.com"/>
<VirtualHost Name="www.x.com:443"/>
<VirtualHost Name="*:8080"/>
<VirtualHost Name="www.x.com:*"/>
<VirtualHost Name="*:*"/>
</VirtualHostGroup>
Name(每個 VirtualHostGroup 必須有且只能有一個該屬性)
將用於此組虛擬主機的邏輯名或管理名。
VirtualHost(每個 VirtualHostGroup 可以有一個或多個該元素)
用於虛擬機器或實際機器的名稱,用來確定入局請求是否應該由 WebSphere Application Server 進行處理。請使用此元素來指定 HTTP Host 頭中將包含的主機名,需要由應用程序服務器處理的請求應該可以到達這些主機。您可以指定入局請求將具有的特定主機名和端口,也可以對主機名和/或端口指定星號(*)。
Name(每個 VirtualHost 必須有且只能有一個該屬性)
應該在 HTTP Host 頭中指定以便與此 VirtualHost 成功匹配的實際名稱。

值是主機名或 IP 地址與端口的組合,用冒號隔開。

您可以將插件配置爲根據請求的入局 HTTP Host 頭和端口將請求路由至應用程序服務器。Name 屬性指定這些組合的內容。

您可以使用通配符表示此屬性。唯一可接受的解決方案是將一個星號(*)表示主機名,一個星號表示端口,或使用一個星號表示這兩者。用一個星號表示這兩者意味着任何請求都將與此規則匹配。如果定義中未指定端口,則使用缺省 HTTP端口 80。

UriGroup
將在 HTTP 請求行上指定的一組 URI。同一個應用程序服務器必須能夠處理這些 URI。路由會將入局 URI 與組中的 URI 作比較,以確定應用程序服務器是否將處理請求。

以下是 UriGroup 元素和相關聯的元素及屬性的示例:

<UriGroup Name="Uris">
<Uri Name="/servlet/snoop"/>
<Uri Name="/webapp/*"/>
<Uri Name="*.jsp"/>
</UriGroup>
Name(每個 UriGroup 必須有且只能有一個該屬性)
用於此組 URI 的邏輯名或管理名。
Uri(每個 UriGroup 可以有一個或多個該元素)
將由 WebSphere Application Server 服務的資源的虛擬路徑。每個 URI 指定需要由應用程序服務器處理的入局 URI。您可以在這些定義中使用通配符。
Name(每個 Uri 必須有且只能有一個該屬性)
應該在 HTTP 請求行中指定以便與此 URI 成功匹配的實際字符串。您可以在 URI 定義中使用通配符。您可以指定將由 WebSphere Application Server 處理的規則,如 *.jsp 或 /servlet/*。當您彙編應用程序時,如果您指定啓用文件服務,則僅會爲 Web 應用程序生成一個帶有通配符的 URI,而不考慮任何顯式 servlet 映射。如果您指定按類名服務 servlet,則將生成具有 <Uri Name="Web_application_URI/servlet/*"> 的 URI。
AffinityCookie(每個 Uri 可以有零個或一個該屬性) (參考server的會話管理的cookie名稱)
插件在嘗試確定入站請求是否具有會話親緣關係時應該使用的 cookie 的名稱。缺省值爲 JSESSIONID

請參閱 CloneID 屬性的描述以獲取其他會話親緣關係信息。

AffinityURLIdentifier(每個 Uri 可以有零個或一個該屬性) (參考web容器定製屬性SessionRewriteIdentifier)
插件在嘗試確定入站請求是否具有在特定克隆的 URL 中指定的親緣關係時應該使用的標識的名稱。缺省值爲 jsessionid

請參閱 CloneID 屬性的描述以獲取其他會話親緣關係信息。

Route
一個請求路由規則,插件通過該規則確定入局請求是否應由 WebSphere Application Server 處理。

路由定義是插件配置的中心元素。它指定插件將如何根據請求的某些特徵來處理請求。路由定義包含其他主要元素:必需的 ServerCluster 以及 VirtualHostGroup 和/或 UriGroup。

通過使用在路由的 VirtualHostGroup 和 UriGroup 中定義的信息,插件確定是否應該將 Web 服務器的入局請求發送到此路由中定義的 ServerCluster。

以下是此元素的示例:

<Route VirtualHostGroup="Hosts" UriGroup="Uris" ServerCluster="servers/>
VirtualHostGroup(每個 Route 可以有零個或一個該屬性)
在確定路由時應該使用的一組虛擬主機。將入局主機頭和服務器端口進行比較以確定此請求是否應由應用程序服務器處理。

可以在路由定義中省略此屬性。如果未提供此屬性,則在確定路由的虛擬主機匹配部分期間,每個請求都將匹配。

UriGroup(每個 Route 可以有零個或一個該屬性)
用於確定路由的一組 URI。將請求的入局 URI 和此組中定義的 URI 進行比較以確定此請求是否應由應用程序服務器處理。

可以在路由定義中省略此屬性。如果未提供此屬性,則在確定路由的 URI 匹配部分期間,每個請求都將匹配。

ServerCluster(每個 Route 必須有且只能有一個該屬性)
會將與路由成功匹配的請求發送至的集羣。

應該用來處理此請求的集羣。如果 URI 和虛擬主機匹配對於此路由已成功,則請求將發送到此集羣內定義的某個服務器。

RequestMetrics
此元素用來確定是否啓用請求度量值,以及當啓用了請求度量值時,如何根據因特網協議(IP)和統一資源標識(URI)過濾器來過濾請求。

以下是此元素的示例:

<RequestMetrics armEnabled="false"  loggingEnabled="true"
			rmEnabled="false" traceLevel="PERF_DEBUG">
armEnabled(RequestMetrics 可以有零個或一個該屬性)
此屬性指示插件中是否啓用 ARM 4 代理程序。當它設置爲 true 時,將調用 ARM 4 代理程序。
注: 對於 SunOne (iPlanet) Web 服務器,obj.conf 文件中必須包含以下僞指令才能啓用 ARM 4 支持:
AddLog fn="as_term"
如果未包含此僞指令,則永遠不會調用 arm_stop 過程。
loggingEnabled(RequestMetrics 必須有且只能有一個該屬性)
此屬性指示是否在插件中啓用請求度量值記錄。當它設置爲 true 而 traceLevel 未設置爲 NONE 時,將記錄請求響應時間(和其他請求信息)。當它設置爲 false 時,則不會記錄請求。loggingEnabled 的值取決於爲系統屬性 com.ibm.websphere.pmi.reqmetrics.loggingEnabled 指定的值。當未提供此係統屬性時,loggingEnable 設置爲 true
rmEnabled(RequestMetrics 必須有且只能有一個該屬性)
此屬性指示是否在插件中啓用請求度量值。當它設置爲 true 時,插件請求度量值將檢查過濾器並將請求跟蹤記錄記錄在插件日誌文件中。如果請求通過了這些過濾器,則將執行此操作。當此屬性設置爲 false 時,將忽略其餘的請求度量值屬性。
traceLevel(RequestMetrics 必須有且只能有一個該屬性)
當 rmEnabled 爲 true 時,此屬性指示將記錄多少信息。當此屬性設置爲 NONE 時,不會執行任何請求日誌記錄。當此屬性未設置爲 NONE 而 loggingEnabled 設置爲 true 時,在執行請求時將記錄請求響應時間(和其他請求信息)。
filters(RequestMetrics 可以有零個、一個或兩個該屬性)
當 rmEnabled 爲 true 時,filters 控制將跟蹤哪些請求。
enable(每個 filter 必須有且只能有一個該屬性)
當 enable 爲 true 時,則該類型的過濾器已打開,並且請求必須通過該過濾器。
type(每個 filter 必須有且只能有一個該屬性)
有兩種類型的過濾器:SOURCE_IP(例如,客戶機 IP 地址)和 URI。對於 SOURCE_IP 過濾器類型,將根據已知的 IP 地址來過濾請求。您可以使用星號(*)指定 IP 地址的掩碼。如果使用星號,則星號必須總是掩碼的最後一個字符,例如,127.0.0.*、127.0.* 和 127*。出於性能原因,模式逐個字符地匹配,直到在過濾器中找到星號、發生不匹配或發現過濾器爲完全匹配爲止。

對於 URI 過濾器類型,將根據入局 HTTP 請求的 URI 來過濾請求。用於模式匹配的規則與用於匹配 SOURCE_IP 地址過濾器的規則相同。

如果 URI 和客戶機 IP 地址過濾器都已啓用,則請求度量值需要匹配兩種過濾器類型。如果兩者都未啓用,則認爲所有請求都匹配。

filterValues(每個過濾器可以有一個或多個該屬性)
filterValues 顯示詳細的過濾器信息。
value(每個 filterValue 必須有且只能有一個該屬性)
爲相應的過濾器類型指定過濾器值。它可以是客戶機 IP 地址或 URI。

附錄 會話管理的定製屬性:

CloneSeparatorChange
使用此屬性維護會話親合關係。服務器的克隆標識被附加到用冒號分隔的會話標識中。在一些無線應用協議(WAP)設備中,不允許有冒號。將此屬性設置成“true”,以將克隆分隔符更改爲加號(+).
HttpSessionCloneId
使用此屬性更改羣集成員的克隆標識。在羣集中,此名稱必須是唯一的以維護會話親合關係。當設置時,此名稱將覆蓋由 WebSphere Application Server 生成的缺省名。缺省克隆的標識符長度:8 或 9。
HttpSessionIdLength
使用此屬性配置會話標識長度。不要使用非常低的值;使用低值將導致減少可能的組合數,因而增加了猜測會話標識的風險。在羣集中,所有羣集成員應當用相同的標識長度來進行配置。允許的範圍:8 到 128。缺省長度:23。
HttpSessionReaperPollInterval
使用此屬性設置除去無效會話的進程的喚醒時間間隔。缺省值是基於會話管理中的最大不活動時間間隔設置。允許的值:整數。
NoAdditionalSessionInfo
將該值設置成“true”以強制除去會話標識中不需要的信息。在 WebSphere Application Server base 版本中,不再使用克隆標識 -1;因此,設置該值時克隆標識不包含在 base 版本中。同樣,非持久會話中不再使用高速緩存標識;所以當設置該值時高速緩存標識不包含在非持久會話中。
SessionIdentifierMaxLength
使用該值設置會話標識可增加的最大長度。在羣集中,由於請求轉到新羣集成員時發生故障轉移,會話管理將把新的克隆標識附加到現有克隆標識中。在大羣集中,如果出於某些原因服務器更頻繁地失敗,那麼有可能是會話標識長度大於期望的長度,它減少了 URL 的空間。因此這個屬性有助於找出條件,並採用適當的操作來處理服務器的故障轉移。當指定此屬性時,消息將在達到指定的最大長度時進行記錄。允許的值:整數。
SessionRewriteIdentifier
使用此屬性更改重寫 URL 時使用的密鑰。缺省密鑰:jsessionid。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章