Exemplo: Configurando o servidor IBM HTTP como um nó intermediário para transações de serviços da Web
É possível usar os nós intermediários de um servidor HTTP para possibilitar a troca de mensagens de protocolo WS-AT (Web Services Atomic Transaction) e WS-BA (Web Services Business Activity) entre firewalls e fora do domínio do WebSphere Application Server. Para o IBM® HTTP Server, você obtém este comportamento modificando o arquivo plugin-cfg.xml do nó do IBM HTTP Server.
Roteando Pedidos para o WebSphere Application Server
É possível usar o IBM HTTP Server como um único nó intermediário ou pode combiná-lo com um Servidor Proxy para IBM WebSphere Application Server. Nos dois casos, atualize o arquivo plugin-cfg.xml para indicar que o servidor HTTP deve rotear pedidos que são destinados ao WebSphere Application Server, aqueles do formulário http://host:port/_IBMSYSAPP/*, para o WebSphere Application Server, em vez de processá-los sozinho.
Para atualizar o arquivo plugin-cfg.xml, inclua um elemento de URI com um nome _IBMSYSAPP, como mostrado no exemplo a seguir. Inclua essa URI em todos os elementos UriGroup no arquivo 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>
Configurando Mapeamento de Host Virtual
Se você estiver utilizando o IBM HTTP como o único nó intermediário, em outras palavras, se você não estiver utilizando também o Servidor Proxy para IBM WebSphere Application Server, configure hosts virtuais para representar cada WebSphere Application Server para o qual o nó HTTP roteia pedidos. Atualize o arquivo plugin-cfg.xml incluindo os elementos VirtualHostGroup, VirtualHost e Route.
O exemplo a seguir mostra parte do arquivo plugin-cfg.xml para uma configuração em que o IBM HTTP Server roteia pedidos para um dos dois servidores, server1 e server2, no WebSphere Application Server.
O arquivo plugin-cfg.xml contém dois aliases de host virtual, com nomes name1.acme.com e name2.acme.com, que são definidos utilizando os elementos VirtualHost e VirtualHostGroup. Os elementos Route definem a associação entre os hosts virtuais e os elementos ServerCluster. Quando um pedido é feito, o IBM HTTP Server localiza o melhor roteamento correspondente para o qual despachar o pedido. Um pedido feito para o host virtual name1.acme.com, com uma URI que corresponde a um padrão no grupo de URIs default_URIs, é enviado ao cluster de servidores server1_Cluster. Esse cluster de servidores contém apenas um servidor, server1; portanto, os pedidos destinados no host virtual name1.acme.com são enviados ao server1 e, de modo semelhante, os pedidos no host virtual name2.acme.com são enviados ao 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"/>