天天看點

解析plugin-cfg.xml檔案

Config(必需)

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

IgnoreDNSFailures
指定啟動時插件是否忽略配置中的 DNS 故障。當設定為 true 時,如果每個 ServerCluster 中至少有一個伺服器能夠解析主機名,則插件忽略配置中的 DNS 故障并成功啟動。任何主機名無法解析的伺服器在配置期間标記為 不可用。稍後在路由請求期間不會嘗試解析該主機名。如果發生 DNS 故障,則日志消息将被寫入插件日志檔案,并繼續插件初始化而不會導緻無法啟動 Web 伺服器。預設值為 false,意味着 DNS 故障會導緻 Web 伺服器不啟動。
RefreshInterval

插件應該檢查配置檔案以檢視是否發生更新或更改的時間間隔(以秒計)。插件檢查檔案自上次裝入插件配置以來,是否有任何修改。

在經常發生更改的開發環境中,低于預設設定 60 的設定更合适些。在生産環境中,因為不會經常更新配置,是以比預設值高的值更合适些。如果由于某些原因重新裝入插件失敗,則一條消息被寫入插件日志檔案,并使用先前的配置,直到成功重新裝入插件配置檔案。如果您還未看到對插件配置的更改,則檢查插件日志檔案以擷取對問題的說明。

ASDisableNagle

指定使用者是否要對插件和應用程式伺服器之間的連接配接禁用 nagle 算法。預設情況下,nagle 算法處于啟用狀态。

值可以為 true 或 false。

IISDisableNagle

指定使用者是否要在 Microsoft Internet Informations Services(IIS)上禁用 nagle 算法。預設情況下,nagle 算法處于啟用狀态。

值可以為 true 或 false。

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 可以設定為 true 或 false。預設情況下,ESI 處理器處于啟用狀态(已設定為 true)。

Property Name="esiMaxCacheSize" Value=" interger"
一個整數,它指定高速緩存的最大大小(以 1K 位元組計)。高速緩存的預設最大大小是 1024K 位元組(1 兆位元組)。如果高速緩存已滿,則要從高速緩存逐出的第一個條目是最接近其截止時間的條目。
Property Name="ESIInvalidationMonitor" Value=" true/false"

用來訓示 ESI 處理器是否應接收來自 Application Server 的失效。

Value 可以設定為 true 或 false。預設情況下,此屬性設定為 false。

對于 WebSphere for z/OS HTTP Server 插件,必須始終将此屬性設定為 false。

Property Name="FIPSEnable" Value=" true/false"

用來訓示是否應啟用聯合資訊處理标準(FIPS)來建立與 Application Server 的安全連接配接。如果 Application Server 上啟用了 FIPS,則應将此屬性設定為 true。

Value 可以設定為 true 或 false。預設情況下,此屬性設定為 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=keyring 和 Property 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 可以有零個或一個該屬性)

在将請求轉發到應用程式伺服器之前,插件将一些特殊的頭添加到請求。這些頭存儲關于應用程式将需要使用的請求的資訊。預設情況下,插件在添加它假定要添加的頭前,将從入局請求中除去這些頭。

值可以為 true 或 false。如果将該屬性設定為 false,則不會除去入局請求中的頭,這是一個潛在的安全性漏洞。

CloneSeparatorChange(每個 ServerCluster 可以有零個或一個該屬性)

某些普及型裝置無法處理冒号字元(:),該字元用于分隔與會話親緣關系聯合的克隆辨別。伺服器組的此屬性通知插件将使用加号(+)作為克隆分隔符。您必須更改應用程式伺服器配置,以便應用程式伺服器也使用加号來分隔克隆辨別。

值可以為 true 或 false。

PostSizeLimit(每個 ServerCluster 可以有零個或一個該屬性)
插件嘗試将請求發送到應用程式伺服器時所允許的請求内容最大位元組數。如果接收到大于此大小的請求,則插件不會發送該請求。預設值為 -1 個位元組,表明釋出大小沒有限制。
解析plugin-cfg.xml檔案
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 支援。可能的屬性值為 true 或 false。預設值為 false;插件在發送請求内容之前,不會等待來自應用程式伺服器的 100 Continue 響應,因為這會降低性能。

對于 POST 請求,将忽略此屬性,以便在應用程式伺服器由于保持活動逾時而關閉連接配接時,不會發生故障。

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

LoadBalanceWeight(每個 Server 可以有零個或一個該屬性)

指定當插件執行權重循環法負載均衡時,與此伺服器相關聯的權重。伺服器的開始值可以為 0 和 20 之間的任何整數。然而,對于已關閉的伺服器,隻應該指定零。

此屬性的算法會遞減伺服器叢集内的所有權重,直到所有權重達到零。在對特定伺服器指定的權重達到零之後,在叢集中的所有伺服器權重為零之前,不會再将請求路由至該伺服器。在所有伺服器達到零之後,将複位叢集中所有伺服器的權重,并且該算法重新開始。

當某個伺服器已關閉時,建議您将該伺服器的權重設定為零。然後插件可以複位仍在運作的伺服器的權重,并維持适當的負載均衡。

ConnectTimeout(每個 Server 可以有零個或一個該屬性)

Server 元素的 ConnectTimeou 屬性使插件可以執行與應用程式伺服器的非分塊連接配接。當插件無法聯系目标以确定端口是可用還是不可用時,非分塊連接配接是有益的。

如果未指定 ConnectTimeout 值,則插件執行分塊連接配接,插件在作業系統逾時(根據平台,它可以長達 2 分鐘)前位于該連接配接中,并且該連接配接允許插件将伺服器标記為不可用。值 0 導緻插件執行分塊連接配接。大于 0 的值指定您要插件等待成功連接配接的秒數。如果在該時間間隔後不發生連接配接,則插件将伺服器标記為不可用并故障轉移到叢集中定義的另一台伺服器。

ExtendedHandshake(每個 Server 可以有零個或一個該屬性)

當代理防火牆在插件和應用程式伺服器之間時,則使用 ExtendedHandshake 屬性。在這種情況下,插件不會像期望的那樣執行故障轉移。

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

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

值可以為 true 或 false。

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。

繼續閱讀