Exemple : Configuration d'IBM HTTP Server comme noeud intermédiaire pour les transactions de services Web
Vous pouvez utiliser des noeuds intermédiaires de serveur HTTP pour permettre l'échange des messages de protocoles Web Services Atomic Transaction et Web Services Business Activity à travers des pare-feu et hors du domaine de WebSphere Application Server. Avec IBM® HTTP Server, vous devez, pour cela, modifier le fichier plugin-cfg.xml du noeud IBM HTTP Server.
Routage des demandes vers WebSphere Application Server
Vous pouvez utiliser le serveurIBM HTTP Server comme noeud intermédiaire unique ou l'associer à un serveur proxy pour IBM WebSphere Application Server. Dans les deux cas, mettez à jour le fichier plugin-cfg.xml afin d'indiquer au serveur HTTP qu'il doit transmettre à WebSphere Application Server les demandes qui lui sont adressées (type http://hôte:port/_IBMSYSAPP/*), au lieu de les traiter lui-même.
Pour mettre à jour le fichier plugin-cfg.xml, ajoutez un élément URI nommé _IBMSYSAPP, comme dans l'exemple ci-dessous. Ajoutez cette URI à tous les éléments UriGroup du fichier plugin-cfg.xml.
<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>
Configuration du mappage de l'hôte virtuel
Si IBM HTTP est utilisé comme unique noeud intermédiaire, à savoir si vous n'utilisez pas en plus Proxy Server for IBM WebSphere Application Server, configurez les hôtes virtuels pour qu'ils représentent chaque serveur WebSphere Application Server destinataire des demandes provenant du noeud HTTP. Mettez à jour le fichier plugin-cfg.xml en ajoutant des éléments VirtualHostGroup, VirtualHost et Route.
L'exemple ci-dessous montre une partie du fichier plugin-cfg.xml pour une configuration dans laquelle IBM HTTP Server route les demandes vers un ou deux serveurs, appelés serveur1 et serveur2, dans WebSphere Application Server.
Le fichier plugin-cfg.xml contient deux alias d'hôtes virtuels, portant les noms nom1.acme.com et nom2.acme.com, définis par les éléments VirtualHost etVirtualHostGroup. Les éléments Route définissent la relation entre les hôtes virtuels et les éléments ServerCluster. Lorsqu'une demande est effectuée, le serveur IBM HTTP Server trouve la meilleure route correspondante pour transmettre la demande. Une demande effectuée auprès de l'hôte virtuel nom1.acme.com, et dont l'URI correspond à un modèle défini dans le groupe d'URI URI_par_défaut, est transmise au cluster de serveurs Cluster_serveurs1. Ce cluster de serveurs contient un seul serveur, appelé serveur1. Ainsi, les demandes ciblant l'hôte virtuel nom1.acme.com sont transmises au serveur appelé serveur1, et de la même manière, les demandes ciblant l'hôte virtuel nom2.acme.com sont transmises au serveur appelé serveur2.
<UriGroup Name="URI_par_défaut">
<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="serveur1" ServerIOTimeout="0" WaitForContinue="false">
...
</Server>
<PrimaryServers> <Server Name="serveur1"/> </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="serveur2" ServerIOTimeout="0" WaitForContinue="false">
...
</Server>
<PrimaryServers> <Server Name="serveur2"/> </PrimaryServers>
</ServerCluster>
<VirtualHostGroup Name="hôtevirtuel_serveur1"> <VirtualHost Name="nom1.acme.com:9081"/> </VirtualHostGroup>
<VirtualHostGroup Name="hôtevirtuel_serveur2"> <VirtualHost Name="nom2.acme.com:9081"/> </VirtualHostGroup>
<Route ServerCluster="Cluster_serveurs1" UriGroup="URI_par_défaut" VirtualHostGroup=" hôtevirtuel_serveur1"/>
<Route ServerCluster="Cluster_serveurs2" UriGroup="URI_par_défaut" VirtualHostGroup=" hôtevirtuel_serveur2"/>