Beispiel: IBM HTTP Server als Zwischenknoten für Web-Service-Transaktionen konfigurieren
Sie können IBM HTTP Server als Zwischenknoten verwenden, um den Austausch von Nachrichten der Protokolle Web Services Atomic Transaction und Web Services Business Activity über Firewalls und außerhalb der Domäne von WebSphere Application Server zu ermöglichen. Für IBM HTTP Server erzielen Sie dieses Verhalten, indem Sie die Datei "plugin-cfg.xml" des Knotens mit IBM HTTP Server modifizieren.
Anforderungen an WebSphere Application Server weiterleiten
Sie können IBM HTTP Server als einzelnen Zwischenknoten verwenden oder IBM HTTP Server mit einem Proxy-Server für IBM WebSphere Application Server kombinieren. In beiden Fällen müssen Sie die Datei "plugin-cfg.xml" aktualisieren und angeben, dass der HTTP-Server Anforderungen, die für WebSphere Application Server bestimmt sind (diese haben das Format http://Host:Port/_IBMSYSAPP/*), an WebSphere Application Server weiterleitet und nicht selber verarbeitet.
Zum Aktualisieren der Datei "plugin-cfg.xml" fügen Sie, wie im folgenden Beispiel gezeigt, ein URI-Element mit dem Namen _IBMSYSAPP hinzu. Fügen Sie diesen URI allen UriGroup-Elementen in der Datei "plugin-cfg.xml" hinzu.
<UriGroup Name="default_host_server1_99T73NKNode01_Cluster_URIs">
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/snoop/*" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/hello" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/hitcount" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsp" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsv" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="*.jsw" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/j_security_check" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/ibm_security_logout" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/servlet/*" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/SamplesGallery/*" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/WSsamples/*" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/PlantsByWebSphere/*" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/PlantsByWebSphere/docs/*" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/_IBMSYSAPP/*" />
</UriGroup>
Zuordnung virtueller Hosts konfigurieren
Wenn Sie IBM HTTP Server als einzigen Zwischenknoten verwenden, d. h., wenn Sie nicht zusätzlich einen Proxy-Server für IBM WebSphere Application Server verwenden, müssen Sie virtuelle Hosts für jeden WebSphere Application Server konfigurieren, an den der HTTP-Knoten Anforderungen weiterleitet. Aktualisieren Sie die Datei "plugin-cfg.xml", und fügen Sie ihr die Elemente VirtualHostGroup, VirtualHost und Route hinzu.
Das folgende Beispiel zeigt einen Teil der Datei "plugin-cfg.xml" für eine Konfiguration, in der IBM HTTP Server Anforderungen an einen von zwei Servern, server1 und server2, in WebSphere Application Server weiterleitet.
Die Datei "plugin-cfg.xml" enthält zwei Aliasnamen für virtuelle Hosts, name1.acme.com und name2.acme.com, die mit den Elementen VirtualHost und VirtualHostGroup definiert wurden. Das Element Route definiert die Zuordnung zwischen den virtuellen Hosts und den ServerCluster-Elementen. Wenn eine Anforderung abgesetzt wird, sucht IBM HTTP Server die am besten geeignete Route für die Zuteilung der Anforderung. Eine Anforderung an den virtuellen Host "name1.acme.com" mit einem URI, der einem Muster in der URI-Gruppe default_URIs übereinstimmt, wird an den Server-Cluster "server1_Cluster" gesendet. Dieser Server-Cluster enthält nur einen Server, server1. Deshalb werden Anforderungen, die für den virtuellen Host "name1.acme.com" bestimmt sind, an server1 gesendet. Anforderungen, die für den virtuellen Host "name2.acme.com" bestimmt sind, werden an server2 gesendet.
<UriGroup Name="default_URIs">
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/snoop/*" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/hello" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/hitcount" />
...
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/PlantsByWebSphere/*" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/PlantsByWebSphere/docs/*" />
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/_IBMSYSAPP/*" />
</UriGroup>
<ServerCluster CloneSeparatorChange="false" LoadBalance="Round Robin" Name="server1_Cluster" PostBufferSize="0"
PostSizeLimit="-1" RemoveSpecialHeaders="true" RetryInterval="60">
<Server ConnectTimeout="0" ExtendedHandshake="false" MaxConnections="-1" Name="server1" ServerIOTimeout="0" WaitForContinue="false">
...
</Server>
<PrimaryServers> <Server Name="server1"/> </PrimaryServers>
</ServerCluster>
<ServerCluster CloneSeparatorChange="false" LoadBalance="Round Robin" Name="server2_Cluster" PostBufferSize="0" PostSizeLimit="-1"
RemoveSpecialHeaders="true" RetryInterval="60">
<Server ConnectTimeout="0" ExtendedHandshake="false" MaxConnections="-1" Name="server2" ServerIOTimeout="0" WaitForContinue="false">
...
</Server>
<PrimaryServers> <Server Name="server2"/> </PrimaryServers>
</ServerCluster>
<VirtualHostGroup Name="vhost_server1"> <VirtualHost Name="name1.acme.com:9081"/> </VirtualHostGroup>
<VirtualHostGroup Name="vhost_server2"> <VirtualHost Name="name2.acme.com:9081"/> </VirtualHostGroup>
<Route ServerCluster="server1_Cluster" UriGroup="default_URIs" VirtualHostGroup=" vhost_server1 "/>
<Route ServerCluster="server2_Cluster" UriGroup="default_URIs" VirtualHostGroup=" vhost_server2"/>