애플리케이션이 다중 집합체에서 배치될 때 모든 애플리케이션 인스턴스에 대해
애플리케이션 요청을 라우팅하는 동적 라우팅 기능을 구성할 수 있습니다.
이 태스크 정보
웹 서버용 Intelligent Management를 사용하면 환경이 변경될 때 관리자가 WebSphere® 플러그인 구성 파일을 다시 생성하지 않아도 Liberty 집합체 멤버로
HTTP 요청이 라우팅됩니다. 서버, 클러스터 멤버, 애플리케이션 또는 가상 호스트가 추가, 제거, 시작, 중지 또는 수정되는 경우,
새 정보가 동적으로 WebSphere 플러그인에 전달됩니다.
요청은 최신 정보를 기반으로 라우팅됩니다.
웹 서버용 Intelligent Management는 애플리케이션이 여러 집합체에 배치될 때
모든 애플리케이션 인스턴스로 애플리케이션 요청을 라우팅합니다. 이전에는 요청이
여러 집합체에 라우팅될 때 특정 애플리케이션을 둘 이상의 집합체에 설치할 수 없었습니다.
웹 서버용 Intelligent Management를 사용하여 HTTP 요청을 Liberty 집합체로 라우팅하려면,
집합체의 모든 집합체 제어기에서 dynamicRouting-1.0 기능을 사용으로 설정하십시오.
dynamicRouting-1.0 기능은 라우팅 정보를 웹 서버용 Intelligent Management에 전달하는
동적 라우팅 서비스를 제공합니다. setup,
genPluginCfg 및 genKeystore 명령 조치를 사용하여
WebSphere 플러그인에서
웹 서버용 Intelligent Management를 사용하는 플러그인 구성 파일 및
플러그인과 동적 라우팅 서비스 간의 보안 통신에 필요한 키 저장소를 생성하십시오.
중요사항: 여러 집합체의 동일한 애플리케이션으로 라우팅하려면 각 집합체에 고유 이름이 있어야 합니다.
집합체의 고유 이름은 다음의 두 가지 예 중에서 하나로서 나타날 수 있습니다.
- 제어기 집합체의 server.xml에서 <dynamicRouting> XML 요소의
connectorClusterName 속성을 사용하십시오. 동일한 집합체의 모든 제어기는
connectorClusterName 속성에 대해 동일한 값을 사용해야 합니다.
서로 다른 집합체의 제어기는 connectorClusterName 속성에 대해 서로 다른 값을 사용해야 합니다.
connectorClusterName 속성이 지정된 경우, 값은 집합체가 작성될 때 사용된
–collectiveName 옵션으로 지정된 값을 대체합니다.
- collective create 명령으로 집합체가 작성될 때는 ‑‑collectiveName 옵션을 사용하십시오.
각 집합체의 동적 라우팅 제어기는 집합체의 상태에 대해 WebSphere 플러그인에 알립니다. 따라서 플러그인은 여러 집합체 간에 동일한 애플리케이션에 대한 요청을
동적으로 라우팅할 수 있습니다. 동적 라우팅 제어기는 제어기의 집합체에서 사용 가능한 각 애플리케이션에 대해
WebSphere 플러그인에 알립니다. 따라서 WebSphere 플러그인은 둘 이상의 집합체에서 애플리케이션이 사용 가능한 시점을 인지합니다.
규칙에서 별도로 언급하지 않는 한, 애플리케이션에 대한 모든 요청은 해당되는 모든 서버 간에 밸런스를 유지합니다.
라우팅 규칙 기능을 사용하면 WebSphere 플러그인에 대한 수신 요청이 지정된 서버 세트로 라우팅됩니다.
또한 요청은 선택적으로 거부되거나 경로 재지정될 수 있습니다.
규칙이 수신 요청에 적용되는지 여부에 대한 선택은 수신 요청의 속성의 일치를 통해 이루어집니다.
- 제어기의 server.xml에서 featureManager 태그에
다음 코드를 추가하여 제어기에서 동적 라우팅을 사용으로 설정하십시오.
<feature>dynamicRouting-1.0</feature>
- 옵션: <dynamicRouting> 요소를 제어기
server.xml에 추가하여 동적 라우팅의 특성을 지정하십시오.
connectorClusterName 특성은 동적 라우팅이 집합체와 연관시키는 이름을 지정합니다.
connectorClusterName 특성이 지정되지 않으면 집합체의 이름이 사용됩니다.
예를 들어, 첫 번째 집합체에서 모든 제어기에 대해 다음 이름을 지정하십시오.
<dynamicRouting connectorClusterName="collective1"/>
예를 들어, 두 번째 집합체에서 모든 제어기에 대해 다음 이름을 지정하십시오.
<dynamicRouting connectorClusterName="collective2"/>
연결에 실패하는 경우,
retryInterval 특성은 제어기에 대한 다른 연결을 시도하기 전의 대기 시간을 지정합니다.
maxRetries 특성은 실패한 집합체 제어기에 재연결을 시도하는 횟수를 지정합니다. 다음 예를 참조하십시오.
<dynamicRouting maxRetries="4" retryInterval="20" connectorClusterName="collective1"/>
<TraceSpecification name="default" specification=":DEBUG"/>
</dynamicRouting>
생성된
plugin-cfg.xml에는
ConnectorCluster 특성이 포함되어 있습니다. 다음 예를 참조하십시오.
<IntelligentMangement>
…
<ConnectorCluster enabled="true" maxRetries="4" name="collective1" retryInterval="20">
<Property name="uri" value="/ibm/api/dynamicRouting"/>
<Connector host="controller1.acme.com" port="9444" protocol="https">
<Property name="keyring" value="/opt/HTTPServer_Plugins/config/webServer1/plugin-key.kdb"/>
</Connector>
</ConnectorCluster>
…
</IntelligentManagement>
- 동적 라우팅 기능에서 사용되는 모든 제어기를 시작하십시오.
- 제어기 중 하나에서 dynamicRouting setup 명령을 실행하여 키 저장소 및 플러그인 구성 파일을 생성하십시오.
다중 집합체 동적 라우팅에 필요한 아티팩트를 작성하려면
--port,
--host,
--user 또는
--password 옵션 대신에
--collectives 옵션을 사용하십시오. 각 집합체를 쉼표(
,)로 분리하여
collective_user:user_password@collective_host:port
형식으로 집합체를 지정하십시오. 다음 예를 참조하십시오.
./dynamicRouting setup --collectives user1:password1@host1:port1,user2:password2@host2:port2,...
--keystorePassword=webAS --pluginInstallRoot=/opt/HTTPServer_Plugins/ --webServerNames=webserver1
각 각 집합체가 고유 이름을 갖는지 확인하십시오. 또한 사용자가 자체 집합체의 사용자 레지스트리에 존재하며 관리 역할을 갖는지도 확인하십시오.
비밀번호를 지정하지 않으면 프롬프트가 나타납니다.
--collectives 옵션의 요구사항을 참조하십시오.
dynamicRouting setup 명령에 대한 자세한 정보는 동적 라우팅 명령의 내용을 참조하십시오.
- 생성된 모든 plugin-key*.jks 파일과
plugin-cfg.xml 파일을 웹 서버 호스트의 임시 디렉토리에 복사하십시오.
--collectives 옵션의 경우, 여러 키 저장소 파일이 작성됩니다.
- plugin-key.jks는 모든 집합체의 집합체 멤버 서버가 웹 서버를 통해 위임되는 요청을 승인하도록 허용합니다.
- plugin-key-collective_name.jks는
--collectives 옵션에서 지정하는 각 집합체에 대한 플러그인 키 파일을 제공합니다.
이러한 파일을 사용하면 WebSphere 플러그인이
특정 집합체의 집합체 제어기와 안전하게 통신할 수 있습니다.
- 웹 서버 호스트에서 IHS 패키지에 포함되어 있는 gskcmd를 실행하여 키 저장소를
CMS 형식으로 변환하고 개인 인증서를 기본값으로 설정하십시오. CMS 형식은
WebSphere 플러그인의 지원 형식입니다. 다음 예를 참조하십시오.
gskcmd -keydb -convert -pw <password> -db /tmp/plugin-key.jks -old_format jks -target /tmp/plugin-key.kdb -new_format cms -stash
gskcmd -cert -setdefault -pw <password> -db /tmp/plugin-key.kdb -label default
생성된 모든 plugin-key*.jks 파일에서 gskcmd를 실행하십시오.
각 파일을 지정하도록 –db 및 –target 옵션을 변경하십시오.
z/OS®의 경우에는 z/OS에서 CMS 형식으로 키 저장소 변환을 참조하십시오.
- gskcmd에 의해 작성된
모든 plugin-key.kdb, plugin-key.rdb 및
plugin-key.sth 파일을 임시 디렉토리에서
--pluginInstallRootargument_value/config/web_server_name/
디렉토리로 복사하십시오.
- plugin-cfg.xml 파일을 웹 서버 httpd.conf 파일의
WebSpherePluginConfig 지시문에 지정된 디렉토리로 복사하십시오.
plugin-cfg.xml 파일은 <IntelligentManagement> 스탠자와 함께 생성됩니다. 동적
라우팅이 집합체에서 사용으로 설정된 경우, 파일에는 각 집합체 제어기마다 하나의 <Connector> 스탠자가 있습니다.
다중 집합체 라우팅의 경우에는 각 집합체에 하나의 <ConnectorCluster> 스탠자가 있습니다. 다음 예를 참조하십시오.
<Property Name="Keyfile" Value="/opt/IBM/WebSphere/Plugins/config/webserver1/plugin-key.kdb"/>
<Property Name="Stashfile" Value="/opt/IBM/WebSphere/Plugins/config/webserver1/plugin-key.sth"/>
<IntelligentMangement>
<Property name="webserverName" value="webserver1"/>
<Property name="RoutingRulesConnectorClusterName" value="collective1"/>
<ConnectorCluster enabled="true" maxRetries="-1" name="collective1" retryInterval="60">
<Property name="uri" value="/ibm/api/dynamicRouting"/>
<Connector host="controller1.acme.com" port="9444" protocol="https">
<Property name="keyring" value="/opt/HTTPServer_Plugins/config/webserver1/plugin-key-collective1.kdb"/>
</Connector>
</ConnectorCluster>
<ConnectorCluster enabled="true" maxRetries="-1" name="collective2" retryInterval="60">
<Property name="uri" value="/ibm/api/dynamicRouting"/>
<Connector host="controller2.acme.com" port="9444" protocol="https">
<Property name="keyring" value="/opt/HTTPServer_Plugins/config/webserver1/plugin-key-collective2.kdb"/>
</Connector>
</ConnectorCluster>
</IntelligentManagement>
- 웹 서버를 시작하고 집합체에 설치된 애플리케이션으로 라우팅을 시작하십시오.
선택사항: 특정 요청이 처리되는 방법을 지정하는 라우팅 규칙을 작성하십시오. 라우팅 규칙은 다음을 수행하도록 지정할 수 있습니다.
- 특정 요청을 거부합니다.
- 특정 요청을 경로 재지정합니다.
- 특정 요청이 사용 가능한 서버의 서브세트로 이동되도록 허용합니다.
- 한 서버 세트의 특정 요청을 다른 서버 세트로 장애 복구합니다.
Liberty 동적 라우팅의 라우팅 규칙 및 Liberty 동적 라우팅의 라우팅 규칙 구성의
내용을 참조하십시오.