예: 웹 서비스 트랜잭션에 대한 매개체 노드로 IBM HTTP 서버 구성
HTTP 서버 매개체 노드를 사용하여 WebSphere® 애플리케이션 서버 도메인 외부 및 방화벽에서 웹 서비스 원자적 트랜잭션 및 웹 서비스 비즈니스 활동 프로토콜 메시지를 교환할 수 있습니다. IBM® HTTP 서버의 경우, IBM HTTP 서버 노드의 plugin-cfg.xml 파일을 수정하여 이 동작을 얻습니다.
WebSphere 애플리케이션 서버에 대한 요청 라우팅
IBM HTTP 서버를 단일 매개체 노드로 사용하거나 IBM WebSphere 애플리케이션 서버용 프록시 서버와 결합할 수 있습니다. 양쪽 경우에서 HTTP 서버가 그들 그 자체를 처리하는 것보다 오히려 WebSphere Application Server에, WebSphere Application Server, 양식 http://host:port/_IBMSYSAPP/*의 그것들을 대상으로 하는 요청을 경로화하여야 하는 것을 나타내려면 plugin-cfg.xml 파일을 업데이트하십시오.
plugin-cfg.xml 파일을 업데이트하려면, 다음 예제에표시된 것처럼, _IBMSYSAPP의 이름을 가진 URI 요소를 추가하십시오. plugin-cfg.xml 파일에서 이 URI을 모든 UriGroup 요소에 추가하십시오.
<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>
가상 호스트 맵핑 구성
단지 중간 노드로서 IBM HTTP을 사용 중인 경우 다시 말하면 또한 IBM WebSphere Application Server를 위한 프록시 서버를 사용하고 있지 않고 HTTP 노드 경로가 요청하는 각 WebSphere Application Server를 나타내기 위해 가상 호스트를 구성합니다. VirtualHostGroup, VirtualHost 및 루트 요소를 추가하여 plugin-cfg.xml 파일을 업데이트하십시오.
다음 예제는 IBM HTTP 서버 루트가 WebSphere Application Server에서 2개 서버, server1 및 server두 개의 중 하나에게 요청하는 구성을 위한 plugin-cfg.xml 파일의 부분을 표시합니다.
plugin-cfg.xml 파일에는 name1.acme.com 및 name2.acme.com의 이름을 가지는 두 개의 가상 호스트 별명이 포함되고, 이는 VirtualHost 및 VirtualHostGroup 요소를 사용하여 정의됩니다. Route 요소는 가상 호스트 및 ServerCluster 요소 사이의 연관을 정의합니다. 요청이 작성되면 IBM HTTP Server가 요청을 디스패치하기 위해 가장 일치하는 경로를 검색합니다. default_URI URI 그룹에서 패턴과 일치하는 URI로 가상 호스트 name1.acme.com으로 작성되는 요청이 server1_Cluster 서버 클러스터에 전송됩니다. 이 서버 클러스터가 단지 하나 서버, server1을 포함하여서 가상 호스트 name1.acme.com을 대상으로 한 요청은 server1에 보내지고 마찬가지로 가상 호스트 name2.acme.com을 대상으로 한 요청이 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"/>