

![[17.0.0.1 and later]](../ng_v17001plus.gif)
Liberty 동적 라우팅의 라우팅 규칙
Liberty 동적 라우팅의 라우팅 규칙을 사용하여 특정 요청의 처리에 사용되는 서버를 정확히 사용자 정의할 수 있습니다.
기본적으로, 동적 라우팅은 요청을 처리할 수 있는 모든 서버 간의 로드 요청을 밸런싱합니다. 기본 작동을 대체하려면 라우팅 규칙을 구성해야 합니다. 라우팅 규칙은 특정 서버 자원으로 요청을 라우팅하거나 요청을 경로 재지정하거나 요청을 거부할 수 있습니다.
- 동일한 애플리케이션을 두 개의 서로 다른 클러스터에 배치하는 경우, 라우팅 규칙을 사용하여 특정 클라이언트 IP 주소 세트의 요청을 클러스터 중 하나로 라우팅하고 나머지 요청을 기타 클러스터로 라우팅할 수 있습니다.
- 여러 집합체의 동일한 애플리케이션을 배치하는 경우, 첫 번째 집합체에서 서버를 사용할 수 있는 한 라우팅 규칙을 사용하여 첫 번째 집합체로만 요청을 전송한 후에 두 번째 집합체의 서버로 요청을 전송할 수 있습니다.
일치 표현식 및 조치
라우팅 규칙은 일치 표현식 및 조치를 제공합니다. 일치 표현식은 각 요청에 적용됩니다. 요청이 일치 표현식과 일치하면 규칙에서 지정하는 조치가 해당 요청에 대해 수행됩니다. 일치 표현식은 요청의 다양한 특성(예: URI, 헤더, 쿠키, 매개변수 및 클라이언트 IP 주소)을 검사합니다. 수행되는 조치는 요청 거부, 요청 경로 재지정 또는 요청 허용입니다.
라우팅 규칙에는 각 규칙에 지정된 순서 번호가 있습니다. 규칙은 최하위 순서 번호에서 최상위 순서번호로 평가됩니다. 요청과 일치하는 첫 번째 규칙은 요청이 처리되는 방법을 판별합니다. 일치하는 규칙이 없는 경우, 요청은 해당 요청을 처리할 수 있는 모든 사용 가능한 서버 간에 밸런싱됩니다.
규칙의 조치 유형이 요청 거부인 경우에는 적용 가능한 HTTP 리턴 코드가 지정됩니다. 거부 코드는 웹 서버가 지원하는 거부 코드 중 하나여야 합니다.
규칙의 조치 유형이 요청 경로 재지정인 경우에는 경로 재지정 위치가 지정됩니다.
규칙의 조치 유형이 요청 허용인 경우에는 요청이 전송될 수 있는 대상이 지정됩니다. 대상은 요청을 로드 밸런싱할 때 선택할 모든 서버의 세트를 지정합니다. 대상 세트 중에서 요청을 최상으로 처리할 수 있는 서버만 사용됩니다. 장애 복구 대상도 지정될 수 있습니다. 장애 복구 대상의 서버는 기본 대상의 모든 서버를 사용할 수 없는 경우에만 사용됩니다. 대상은 클러스터 또는 서버로서만 지정될 수 있습니다.
기본적으로, 요청에 세션 선호도가 있을 때는 선호도를 기반으로 서버가 선택됩니다. 선호도 서버가 있으면 라우팅 규칙이 사용되지 않습니다. 라우팅 규칙을 사용하여 선호도 선택사항을 대체할 수 있도록 overrideAffinity 속성이 server.xml 파일의 <routingRules> 요소에 추가될 수 있습니다. Liberty 동적 라우팅의 라우팅 규칙 구성의 내용을 참조하십시오.
클러스터 대상
클러스터 대상은 집합체 이름 및 클러스터 이름으로 지정됩니다. 클러스터 대상의 두 파트에서는 각각 와일드카드(*) 문자를 사용할 수 있습니다. 예를 들어, 클러스터 대상이 cluster=collective1,*로서 지정된 경우에는 collective1의 임의의 클러스터의 서버가 사용될 수 있습니다. 클러스터 대상이 cluster=*,cluster1로서 지정된 경우에는 임의의 집합체의 cluster1의 서버가 사용될 수 있습니다.
서버 대상
서버 대상은 집합체 이름, 호스트 이름, 사용자 디렉토리 및 서버 이름으로 지정됩니다. 서버 대상의 모든 파트에서는 와일드카드 문자를 사용할 수 있습니다. 예를 들어, 서버 대상이 server=collective1,*,*,*로서 지정된 경우에는 collective1의 임의의 서버가 사용될 수 있습니다. 서버 대상이 server=*,*,*,server1로서 지정된 경우에는 임의의 집합체의 server1이 사용될 수 있습니다.
라우팅 규칙 평가
라우팅 규칙이 적용되기 전에, 웹 서버용 Intelligent Management는 요청을 제공하기 위한 최상의 대상 세트를 판별합니다. 최상의 대상 세트는 해당 가상 호스트, 컨텍스트 루트 및 서블릿 맵핑이 요청과 가장 잘 일치하는 웹 애플리케이션의 해당 서버입니다. 라우팅 규칙은 라우팅에 사용되는 대상을 전체 최상 대상 세트의 서브세트로 제한할 수 있습니다. 라우팅 규칙으로 인해 원래 최상 대상 세트 외부에 있는 대상이 선택될 수는 없습니다.
예를 들어, 다음과 같은 조건이 존재한다고 가정합니다.
- ApplicationA에 컨텍스트 루트 /A/*가 있으며, 이는 clusterA에 설치되어 있습니다.
- ApplicationAB에 컨텍스트 루트 /A/B/*가 있으며, 이는 clusterAB에 설치되어 있습니다.
위의 조건에서 라우팅 규칙은 다음과 같이 요청을 평가합니다.
- 두 애플리케이션은 둘 다 /A/B/myservlet 요청을 제공할 수 있습니다. 그러나 /A/B/* 컨텍스트 루트가 /A/* 컨텍스트 루트보다 /A/B/myservlet와 더 잘 일치하므로 /A/B/myservlet에 대한 요청은 항상 clusterAB로 라우팅됩니다.
- /A/B/myservlet에 대한 요청과 일치하는 라우팅 규칙을 사용하여 clusterAB의 서버의 서브세트로 대상을 제한할 수 있지만, 이를 사용하여 이 요청에 대한 일치로서 선택된 적이 없는 clusterA의 서버를 선택할 수는 없습니다.