Ejemplo: configuración de IBM HTTP Server como un nodo intermediario para las transacciones de servicios web
Puede utilizar nodos intermediarios de un servidor HTTP para habilitar el intercambio de mensajes de protocolo Web Services Atomic Transaction y Web Services Business Activity a través de cortafuegos y fuera del dominio de WebSphere Application Server. Para IBM® HTTP Server, puede conseguir este comportamiento modificando el archivo plugin-cfg.xml del nodo de IBM HTTP Server.
Direccionamiento de solicitudes a WebSphere Application Server
Puede utilizar IBM HTTP Server como un solo nodo intermediario o puede combinarlo con un servidor proxy para IBM WebSphere Application Server. En ambos casos, actualice el archivo plugin-cfg.xml para indicar que el servidor HTTP debe direccionar las solicitudes destinadas a WebSphere Application Server, con el formato http://host:puerto/_IBMSYSAPP/*, a WebSphere Application Server, en lugar de procesarlas por sí mismo.
Para actualizar el archivo plugin-cfg.xml añada un elemento URI con un nombre de _IBMSYSAPP, como se muestra en el ejemplo siguiente. Añada este URI a todos los elementos UriGroup del archivo 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>
Configuración de una correlación de host virtuales
Si utiliza IBM HTTP como único nodo intermediario; es decir, no utiliza tampoco un servidor proxy para IBM WebSphere Application Server, configure los hosts virtuales para que representen todos los servidores WebSphere Application Server a los que el nodo HTTP direcciona las solicitudes. Actualice el archivo plugin-cfg.xml añadiendo los elementos VirtualHostGroup, VirtualHost y Route.
En el siguiente ejemplo se muestra parte del archivo plugin-cfg.xml para una configuración en la que IBM HTTP Server direcciona las solicitudes a uno de dos servidores, server1 y server2, en WebSphere Application Server.
El archivo plugin-cfg.xml contiene dos alias de host virtuales, con los nombres name1.acme.com y name2.acme.com, que se definen con los elementos VirtualHost y VirtualHostGroup. Los elementos Route definen la asociación entre los host virtuales y los elementos ServerCluster. Cuando se realiza una solicitud, IBM HTTP Server busca la ruta que más coincida a la que asignar la solicitud. Las solicitudes realizadas al host virtual name1.acme.com, con un URI que coincide con un patrón del grupo de URI default_URIs, se envían al clúster de servidor server1_Cluster. Este clúster de servidor contiene sólo un servidor, server1, de manera que las solicitudes destinadas al host virtual name1.acme.com se envían a server1 y, de modo similar, las solicitudes destinadas al host virtual name2.acme.com se envían a server2.
<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"/>