Sun Java System Application Server 9.1 고가용성 관리 설명서

로드 밸런서 구성

로드 밸런서 구성은 domain.xml 파일에 유지됩니다. 로드 밸런서 구성은 매우 유연합니다.

이 절에서는 로드 밸런서 구성을 만들고, 수정하고, 사용하는 방법에 대해 자세히 설명합니다.

DAS에서 HTTP 로드 밸런서 구성

Application Server 9.1에서 관리 콘솔 또는 asadmin 명령 create-http-lb를 사용하여 DAS에 로드 밸런서 구성을 만들 수 있습니다. 이 작업은 다음과 같은 단계로 수행됩니다. asadmin 명령 create-http-lb, delete-http-lblist-http-lbs에 대한 자세한 내용을 보려면 Sun Java System Application Server 9.1 Reference Manual을 참조하십시오.

관리 콘솔에서 왼쪽 프레임을 아래로 스크롤하여 HTTP 로드 밸런서 노드를 누른 다음 HTTP 로드 밸런서 페이지 오른쪽에서 새로 만들기를 누릅니다. 새 HTTP 로드 밸런서 페이지에서 로드 밸런서를 호스팅하는 시스템에 대해 다음과 같은 세부 사항을 제공합니다.

필드 

설명 

이름 

로드 밸런서 구성의 이름입니다. 

사용 가능 

로드 밸런서 구성 변경 내용을 자동으로 웹 서버 구성 디렉토리에 있는 물리적 로드 밸런서로 전송하려면 사용 가능 확인란을 누릅니다. 

호스트 

웹 서버 인스턴스가 설치된 서버입니다. 

관리 포트 

웹 서버 인스턴스에서 사용하는 관리 포트 번호입니다. 

프록시 호스트 

프록시 서버 인스턴스가 설치된 서버입니다. 

프록시 포트 

프록시 서버에서 사용하는 포트 번호입니다.  

asadmin 명령 create-http-lb-config를 사용하여 로드 밸런서 구성을 만들 수도 있습니다. 표 5–1에서 매개 변수에 대해 설명합니다. create-http-lb-config, delete-http-lb-configlist-http-lb-configs에 대한 자세한 내용은 Sun Java System Application Server 9.1 Reference Manual을 참조하십시오.

표 5–1 로드 밸런서 구성 매개 변수

매개 변수 

설명 

response timeout 

서버 인스턴스에서 응답을 반환해야 하는 시간(초)입니다. 기간 내에 응답을 받지 못하면 서버가 비정상인 것으로 간주됩니다. 기본값은 60입니다.

HTTPS routing 

로드 밸런서에 대한 HTTPS 요청으로 서버 인스턴스에 대한 HTTPS 또는 HTTP 요청이 발생하는지 여부입니다. 자세한 내용은 HTTPS 라우팅 구성을 참조하십시오.

reload interval 

로드 밸런서 구성 파일 loadbalancer.xml의 변경 사항을 확인하는 간격입니다. 변경 사항이 확인되면 구성 파일을 다시 로드합니다. 값 0은 다시 로드를 비활성화합니다. 자세한 내용은 동적 재구성 활성화를 참조하십시오.

monitor 

로드 밸런서에 대한 모니터링을 활성화할지 여부입니다. 

routecookie 

경로 정보를 기록할 때 로드 밸런서 플러그인에서 사용하는 쿠키 이름입니다. HTTP 클라이언트가 쿠키를 지원해야 합니다. 쿠키를 저장하기 전에 확인하도록 브라우저를 설정한 경우 쿠키 이름은 JROUTE입니다.

target 

로드 밸런서 구성의 대상입니다. 대상을 지정한 경우 대상에 대한 참조를 추가한 것과 같습니다. 클러스터나 독립 실행형 인스턴스가 대상이 될 수 있습니다.

HTTP 로드 밸런서 참조 만들기

로드 밸런서에 독립 실행형 서버나 클러스터에 대한 참조를 만들면 로드 밸런서를 통해 제어되는 대상 서버나 클러스터 목록에 해당 서버나 클러스터가 추가됩니다. 참조되는 서버 또는 클러스터가 활성화되어야 해당 요청의 로드 균형이 조정됩니다. 대상과 함께 로드 밸런서 구성을 만들었다면 해당 대상이 이미 참조로 추가되어 있습니다.

관리 콘솔을 사용하여 참조를 만들려면 왼쪽 프레임에서 HTTP 로드 밸런서 노드를 누른 다음 노드 아래에 나열된 로드 밸런서 중 원하는 로드 밸런서를 누릅니다. 대상 탭에서 대상 관리를 누르고 대상 관리 페이지에서 필요한 대상을 선택합니다. create-http-lb-ref를 사용하여 참조를 만드는 방법도 있습니다. 로드 밸런서 구성 이름과 대상 서버 인스턴스 또는 클러스터를 제공해야 합니다.

참조를 삭제하려면 delete-http-lb-ref를 사용합니다. 참조를 삭제하려면 disable-http-lb-server를 사용하여 참조된 서버나 클러스터를 비활성화해야 합니다.

이러한 명령에 대한 자세한 내용은 Sun Java System Application Server 9.1 Reference Manual을 참조하십시오.

로드 균형 조정을 위해 서버 인스턴스 활성화

서버 인스턴스나 클러스터에 대한 참조를 만든 후에 enable-http-lb-server를 사용하여 서버 인스턴스나 클러스터를 활성화합니다. 로드 밸런서 구성을 만들 때 서버 인스턴스나 클러스터를 대상으로 사용한 경우 이를 활성화해야 합니다. 관리 콘솔을 사용하여 이 작업을 수행하려면 왼쪽 프레임에서 HTTP 로드 밸런서 노드를 누른 다음 노드 아래에 나열된 로드 밸런서 중 원하는 로드 밸런서를 누릅니다. 이제 대상 탭을 열고 대상 테이블에서 활성화할 인스턴스 옆의 확인란을 누른 다음 활성화를 누릅니다.

이 명령에 대한 자세한 내용은 enable-http-lb-server(1)를 참조하십시오.

로드 균형 조정을 위해 응용 프로그램 활성화

로드 밸런서를 통해 관리되는 모든 서버는 동기종 구성을 가져야 하며 동일한 응용 프로그램들이 배포되어야 합니다. 응용 프로그램을 배포하고 액세스할 수 있도록 활성화한 경우(배포 단계 중 또는 이후에 발생함) 로드 균형 조정을 위해 응용 프로그램을 활성화해야 합니다. 로드 균형 조정을 위해 응용 프로그램을 활성화하지 않은 경우 응용 프로그램이 배포된 서버에 대한 요청은 로드 균형 조정되고 페일오버되더라도 이 응용 프로그램에 대한 요청은 로드 균형 조정되지 않고 페일오버됩니다.

응용 프로그램을 활성화할 경우 응용 프로그램 이름과 대상을 지정합니다. 로드 밸런서에서 여러 대상(예: 두 개의 클러스터)을 관리할 경우 모든 대상에서 응용 프로그램을 활성화합니다.

관리 콘솔을 사용하여 응용 프로그램을 활성화하려면 왼쪽 프레임에서 HTTP 로드 밸런서 노드를 누른 다음 노드 아래에 나열된 로드 밸런서 중 원하는 로드 밸런서를 누릅니다. 위의 설명에 따라 대상 탭을 열고 필요한 클러스터를 누릅니다. 이제 응용 프로그램 탭을 열고 원하는 응용 프로그램을 선택한 다음 추가 작업 드롭다운 목록에서 로드 밸런서 활성화를 선택합니다. 명령줄에서 이 작업을 수행하려면 asadmin enable-http-lb-application 명령을 사용합니다. 자세한 내용은 enable-http-lb-application(1)을 참조하십시오.

새로운 응용 프로그램을 배포할 경우 로드 균형 조정을 위해 응용 프로그램을 활성화하고 로드 밸런서 구성을 다시 내보내야 합니다.

HTTP 상태 검사기 만들기

로드 밸런서의 상태 검사기는 비정상으로 표시되는 모든 구성된 Application Server 인스턴스를 주기적으로 검사합니다. 상태 검사기는 필수가 아닙니다. 그러나 상태 검사기가 없거나 상태 검사기가 비활성화된 경우 비정상 인스턴스의 정기적인 상태 검사가 수행되지 않습니다. 로드 밸런서는 비정상 인스턴스가 정상이 되는 시점을 확인할 수 없습니다.

로드 밸런서의 상태 검사 메커니즘은 HTTP를 사용하여 Application Server 인스턴스와 통신합니다. 상태 검사기는 지정한 URL에 HTTP 요청을 보내고 응답을 기다립니다. HTTP 응답 헤더의 상태 코드가 100과 500 사이에 있으면 인스턴스가 정상임을 의미합니다.


주 –

로드 밸런서가 클라이언트 인증서 인증이 활성화된 보안 포트 사용 인스턴스가 있는 클러스터의 프런트엔드인 배포 시나리오에서는 상태 검사기가 인스턴스의 상태 검사를 수행할 수 없습니다. 따라서 해당 인스턴스는 항상 비정상 상태로 표시되고 요청이 전송되지 않습니다.


상태 검사기 만들기

상태 검사기 등록 정보를 지정하려면 관리 콘솔 또는 asadmin create-http-health-checker 명령을 사용할 수 있습니다. 관리 콘솔에서 이 작업을 수행하려면 HTTP 로드 밸런서 노드로 이동하여 노드를 확장하고 로드 밸런서를 선택합니다. 그런 다음 대상 탭을 열고 대상 테이블에서 원하는 대상의 상태 검사기 편집 링크를 누릅니다. 다음 매개 변수를 지정합니다.

표 5–2 상태 검사기 매개 변수

매개 변수 

설명 

기본값 

로드 밸런서 

선택한 서버를 로드 균형 조정에 사용할 수 있게 하려면 사용 가능 확인란을 누릅니다. 

False/사용 안 함 

비활성화 시간 초과 

이 서버가 비활성화된 후 정지 상태에 도달하는 데 걸리는 시간(분)입니다. 

30분 

url 

로드 밸런서가 검사하여 상태를 확인할 수신기의 URL을 지정합니다.  

“/” 

interval 

인스턴스의 상태 검사가 발생하는 간격(초)을 지정합니다. 0을 지정하면 상태 검사기가 비활성화됩니다. 

30초 

timeout 

수신기를 정상으로 간주하기 위해 응답을 받아야 하는 시간 초과 간격(초)을 지정합니다.  

10초 

Application Server 인스턴스가 비정상으로 표시되면 상태 검사기는 비정상 인스턴스를 폴링하여 인스턴스가 정상적으로 되었는지 확인합니다. 상태 검사기는 지정된 URL을 사용하여 모든 비정상 Application Server 인스턴스를 검사하고 정상 상태로 되었는지 확인합니다.

상태 검사기에 비정상 인스턴스가 정상이 되었음을 확인하면 해당 인스턴스는 정상 인스턴스 목록에 추가됩니다.

명령에 대한 자세한 내용은 create-http-health-checker(1)delete-http-health-checker(1)를 참조하십시오.

정상 인스턴스에 대한 추가 상태 검사 등록 정보

create-http-health-checker로 만든 상태 검사기만 비정상 인스턴스를 검사합니다. 정상 인스턴스를 정기적으로 검사하려면 내보낸 loadbalancer.xml 파일에 추가 등록 정보를 설정합니다.


주 –

이러한 등록 정보는 loadbalancer.xml을 내보낸 후에 수동으로 편집해야만 설정할 수 있습니다. 사용할 수 있는 동등한 asadmin 명령이 없습니다.


정상 인스턴스를 검사하려면 다음 등록 정보를 설정합니다.

표 5–3 상태 검사기 수동 등록 정보

등록 정보 

정의 

active-healthcheck-enabled

정상 서버 인스턴스를 핑하여 정상인지 확인할지 여부를 나타내는 True/false 플래그입니다. 서버 인스턴스를 핑하려면 플래그를 true로 설정합니다. 

number-healthcheck-retries

서버 인스턴스를 비정상으로 표시하기 전에 로드 밸런서의 상태 검사기가 응답이 없는 서버 인스턴스를 핑하는 횟수를 지정합니다. 유효한 값은 1과 1000 사이입니다. 설정된 기본값은 3입니다. 

loadbalancer.xml 파일을 편집하여 등록 정보를 설정합니다. 예를 들면 다음과 같습니다.

<property name="active-healthcheck-enabled" value="true"/>
<property name="number-healthcheck-retries" value="3"/>

이러한 등록 정보를 추가한 다음 loadbalancer.xml 파일을 편집하여 다시 내보낼 경우 새로 내보낸 구성에는 이러한 등록 정보가 없습니다. 새로 내보낸 구성에 이러한 등록 정보를 다시 추가해야 합니다.

로드 밸런서 구성 파일 내보내기

Sun Java System Application Server에서 사용할 수 있는 로드 밸런서 플러그인은 loadbalancer.xml이라는 구성 파일을 사용합니다. 로드 밸런서를 구성한 뒤에는 domain.xml의 구성 세부 사항을 loadbalancer.xml 파일로 내보낼 수 있습니다. 관리 콘솔이나 asadmin 유틸리티를 사용하여 이 작업을 수행할 수 있습니다.

Procedure관리 콘솔을 사용하여 로드 밸런서 구성 내보내기

  1. HTTP 로드 밸런서 노드로 이동하여 노드를 확장합니다.

  2. 원하는 로드 밸런서를 누릅니다.

    모든 로드 밸런서 구성 세부 사항이 일반, 설정 및 대상 탭에 표시됩니다.

  3. 내보내기 탭을 열고 지금 내보내기를 누릅니다.

  4. 내보낸 로드 밸런서 구성 파일을 웹 서버의 구성 디렉토리에 복사합니다.

Procedure관리 콘솔을 사용하여 로드 밸런서 구성 내보내기

  1. asadmin 명령 export-http-lb-config를 사용하여 loadbalancer.xml 파일을 내보냅니다. 명령에 대한 자세한 내용은 export-http-lb-config(1)를 참조하십시오.

    특정 로드 밸런서 구성에 대한 loadbalancer.xml 파일을 내보냅니다. 경로 및 다른 파일 이름을 지정할 수 있습니다. 파일 이름을 지정하지 않으면 loadbalancer.xml.load-balancer-config-name으로 이름이 지정됩니다. 경로를 지정하지 않을 경우 파일은 domain-dir/generated 디렉토리에 만들어집니다.

    Windows에서 경로를 지정하려면 경로를 따옴표로 묶습니다. 예를 들면 "C:\Sun\AppServer\loadbalancer.xml"과 같습니다.

  2. 내보낸 로드 밸런서 구성 파일을 웹 서버의 구성 디렉토리에 복사합니다.

    예를 들어, Sun Java System Web Server의 경우 일반적인 위치는 web-server-root/config입니다.

    웹 서버의 구성 디렉토리에 있는 로드 밸런서 구성 파일의 이름은 loadbalancer.xml입니다. 파일 이름이 다를 경우(예: loadbalancer.xml.load-balancer-config-name) 이름을 변경해야 합니다.

로드 밸런서 구성 변경

서버에 대한 참조를 만들거나 삭제하고, 새 응용 프로그램을 배포하고, 서버나 응용 프로그램을 활성화 또는 비활성화하는 등의 작업을 수행하여 로드 밸런서 구성을 변경할 경우 로드 밸런서 파일을 다시 내보낸 후 웹 서버의 config 디렉토리에 복사합니다. 자세한 내용은 로드 밸런서 구성 파일 내보내기를 참조하십시오.

로드 밸런서 플러그인은 로드 밸런서 구성에 지정한 다시 로드 간격을 기반으로 정기적으로 업데이트된 구성이 있는지 확인합니다. 지정한 시간 후 로드 밸런서가 새로운 구성 파일을 발견하면 해당 구성을 사용하기 시작합니다.

동적 재구성 활성화

동적 재구성을 사용할 경우 로드 밸런서 플러그인은 업데이트된 구성을 주기적으로 확인합니다.

동적 재구성을 활성화하려면 다음 작업을 수행합니다.


주 –

재구성하는 중 로드 밸런서에 하드 디스크 읽기 오류가 발생하는 경우 현재 메모리에 있는 구성을 사용합니다. 로드 밸런서는 기존 구성을 덮어쓰기 전에 수정된 구성 데이터가 DTD와 호환되는지 확인합니다.

디스크 읽기 오류가 발생한 경우 경고 메시지가 웹 서버의 오류 로그 파일에 로깅됩니다.

Sun Java System Web Server의 오류 로그는 다음 위치에 있습니다. web-server-install-dir/web-server-instance /logs/


서버 인스턴스 또는 클러스터 비활성화(정지)

여타의 이유로 응용 프로그램 서버를 중지하기 전에 인스턴스는 요청 처리를 완료해야 합니다. 서버 인스턴스나 클러스터를 적절하게 비활성화하는 프로세스를 정지라고 합니다.

로드 밸런서는 Application Server 인스턴스를 정지하는 데 다음과 같은 정책을 사용합니다.

Procedure서버 인스턴스나 클러스터 비활성화

  1. asadmin disable-http-lb-server를 실행하여 시간 초과(분)를 설정합니다. 명령에 대한 자세한 내용은 disable-http-lb-server(1)를 참조하십시오.

  2. asadmin export-http-lb-config를 사용하여 로드 밸런서 구성 파일을 내보냅니다. 명령에 대한 자세한 내용은 export-http-lb-config(1)를 참조하십시오.

  3. 내보낸 구성을 웹 서버 config 디렉토리에 복사합니다.

  4. 서버 인스턴스나 인스턴스를 중지합니다.

응용 프로그램 비활성화(정지)

웹 응용 프로그램의 배포를 취소하기 전에 응용 프로그램은 요청 처리를 완료해야 합니다. 응용 프로그램을 적절하게 비활성화하는 프로세스를 정지라고 합니다. 응용 프로그램을 정지할 경우 시간 초과 기간을 지정해야 합니다. 시간 초과 기간에 따라 로드 밸런서는 응용 프로그램 정지를 위해 다음 정책을 사용합니다.

Procedure응용 프로그램 비활성화

  1. 다음을 지정하여 asadmin disable-http-lb-application을 사용합니다.

    • 시간 초과(분)

    • 비활성화할 응용 프로그램의 이름

    • 비활성화할 대상 클러스터 또는 인스턴스

    명령에 대한 자세한 내용은 disable-http-lb-application(1)을 참조하십시오.

  2. asadmin export-http-lb-config를 사용하여 로드 밸런서 구성 파일을 내보냅니다. 명령에 대한 자세한 내용은 export-http-lb-config(1)를 참조하십시오.

  3. 내보낸 구성을 웹 서버 config 디렉토리에 복사합니다.

HTTP 및 HTTPS 페일오버 구성

세션이 연결된 원래 Application Server 인스턴스를 사용할 수 없게 된 경우 로드 밸런서 플러그인은 HTTP/HTTPS 세션을 다른 Application Server 인스턴스로 페일오버합니다. 이 절에서는 HTTP/HTTPS 라우팅 및 세션 페일오버를 활성화하도록 로드 밸런서 플러그인을 구성하는 방법에 대해 설명합니다.

HTTPS 라우팅

로드 밸런서 플러그인은 들어오는 모든 HTTP 또는 HTTPS 요청의 경로를 Application Server 인스턴스로 지정합니다. 그러나 HTTPS 라우팅이 활성화된 경우 로드 밸런서 플러그인은 HTTPS 포트만 사용하는 Application Server로 HTTPS 요청을 전달합니다. 새로운 요청과 고정된 요청 모두에 대해 HTTPS 라우팅을 수행합니다.

HTTPS 요청을 수신하고 진행 중인 세션이 없을 경우 로드 밸런서 플러그인은 HTTPS 포트가 구성된 사용 가능한 Application Server 인스턴스를 선택하고 요청을 인스턴스로 전달합니다.

진행 중인 HTTP 세션에서 동일한 세션에 대한 새로운 HTTPS 요청을 받으면 세션과 HTTP 세션 중에 저장된 고정된 정보를 사용하여 HTTPS 요청을 라우팅합니다. 마지막 HTTP 요청이 처리된 동일한 서버로 새로운 HTTP S 요청 경로가 지정되지만 HTTPS 포트에 지정됩니다.

HTTPS 라우팅 구성

create-http-lb-config 명령의 httpsrouting 옵션은 로드 균형 조정에 참여하는 모든 Application Server에 대해 HTTPS 라우팅의 설정 또는 해제 여부를 제어합니다. 이 옵션을 false로 설정하면 모든 HTTP 및 HTTPS 요청이 HTTP로 전달됩니다. true로 설정하면 HTTPS가 HTTPS 요청으로 전달됩니다. 로드 밸런서 구성을 새로 만들 경우 HTTPS 라우팅을 설정하거나 나중에 asadmin set 명령을 사용하여 변경합니다.


주 –

알려진 문제점

로드 밸런서를 사용하여 HTTP/HTTPS 요청을 처리할 때 다음과 같은 제한이 적용됩니다.

로드 밸런서와 함께 리디렉션 사용

리디렉션을 사용하여 한 URL에서 다른 URL로 요청을 리디렉션합니다. 예를 들어, 리디렉션을 사용하여 사용자를 다른 웹 사이트로 보내거나(예: 이전 버전의 응용 프로그램에서 새 버전으로 리디렉션) HTTP에서 HTTPS로 또는 HTTPS에서 HTTP로 보냅니다. 응용 프로그램에서 다양한 방법으로 리디렉션을 활성화할 수 있습니다(예: 서블릿 기반 리디렉션, web.xml 리디렉션). 그러나 로드 밸런서를 통해 리디렉션 URL을 보내려면 Application Server 또는 로드 밸런서의 일부 추가 구성이 필요할 수 있습니다. 리디렉션은 HTTPS 라우팅을 사용하여 전달되는 요청과 다릅니다. 리디렉션을 사용할 경우 httpsrouting을 false로 설정합니다. HTTP에 전달할 HTTPS 요청을 구성할 경우 HTTPS 라우팅을 사용합니다.

리디렉션에 영향을 주는 등록 정보는HTTP 서비스 또는 HTTP Listener의 authPassthroughEnabledproxyHandler 등록 정보와 loadbalancer.xml 파일의 rewrite-location 등록 정보입니다.

authPassthroughEnabled 등록 정보

Application Server authPassthroughEnabled 등록 정보가 true로 설정된 경우 원래 클라이언트 요청에 대한 정보(예: 클라이언트 IP 주소, SSL 키 크기 및 인증된 클라이언트 인증서 체인)가 사용자 요청 헤더를 사용하여 HTTP Listener에 보내집니다. authPassThroughEnabled 등록 정보를 사용하면 더 빠른 SSL 인증을 위해 하드웨어 가속기(설치되어 있는 경우)를 활용할 수 있습니다. 클러스터링된 각 Application Server 인스턴스 대신에 로드 밸런서에서 하드웨어 가속기를 구성하는 것이 더 쉽습니다.


주의 – 주의 –

Application Server가 방화벽 뒤에 있는 경우에만 authPassthroughEnabled를 true로 설정합니다.


asadmin set 명령을 사용하여 HTTP 서비스 또는 개별 HTTP Listener에서 authPassthroughEnabled 등록 정보를 설정합니다. 개별 HTTP Listener에 대한 설정은 HTTP 서비스에 대한 설정보다 우선합니다.

모든 HTTP/HTTPS Listener에서 authPassthroughEnabled 등록 정보를 설정하려면 다음 명령을 사용합니다.

asadmin set cluster-name-config.http-service.property.authPassthroughEnabled=true

개별 수신기에서 설정하려면 다음 명령을 사용합니다.

asadmin set cluster-name-config.http-service.http-listener. listener-name.property.authPassthroughEnabled=true

proxyHandler 등록 정보

Application Server에 대한 프록시 처리기는 프록시 서버(이 경우에는 로드 밸런서)에서 인터셉트하여 Application Server에 전달한 원래 클라이언트 요청에 대한 정보를 검색하고 클라이언트 요청의 대상인 웹 응용 프로그램(Application Server에 배포된)에서 이 정보를 사용할 수 있게 만드는 역할을 수행합니다. 인터셉트 프록시 서버가 SSL 종단인 경우 프록시 처리기는 원래 요청에 대한 추가 정보(예: 원래 요청이 HTTPS 요청이었는지 여부 및 SSL 클라이언트 인증이 활성화되었는지 여부)를 검색하여 사용할 수 있게 만듭니다. authPassThroughEnabled가 true로 설정된 경우에만 proxyHandler 등록 정보를 사용합니다.

프록시 처리기는 들어오는 요청에서 프록시 서버가 원래 클라이언트 요청에 대한 정보를 전달하는 데 사용하는 사용자 정의 요청 헤더를 검사하고 표준 ServletRequest API를 사용하여 Application Server의 웹 응용 프로그램에서 이 정보를 사용할 수 있게 만듭니다.

프록시 처리기 구현은 proxyHandler 등록 정보를 사용하여 HTTP 서비스 수준에서 전역적으로 구성하거나 개별 HTTP Listener에 대해 구성할 수 있습니다. 이 등록 정보의 값은 com.sun.appserv.ProxyHandler 추상 클래스의 구현에 대한 정규화된 클래스 이름을 지정합니다. 구성 가능한 프록시 처리기 구현을 사용하면 Application Server에서 모든 프록시 서버를 사용할 수 있습니다. 단, 이 경우 프록시 처리기 구현은 HTTP 요청 헤더 이름과 해당 값의 형식을 알고 있어야 합니다. 이를 통해 프록시 서버는 원래 클라이언트 요청에 대한 정보를 전달합니다.

Application Server에 대한 프록시 처리기는 요청 헤더에서 SSL 인증서 체인을 읽고 구문 분석합니다. 따라서 백엔드 Application Server 인스턴스는 SSL 종단 프록시 서버(이 경우, 로드 밸런서)가 인터셉트한 원래 클라이언트 요청에 대한 정보를 검색할 수 있습니다. 기본 프록시 처리기 설정을 사용하거나 HTTP 서비스 또는 HTTP/HTTPS Listener의 proxyHandler 등록 정보를 사용하여 고유한 설정을 구성할 수 있습니다. proxyHandler 등록 정보는 이 수신기나 모든 수신기에 사용되는 com.sun.appserv.ProxyHandler 추상 클래스의 사용자 구현에 대한 정규화된 클래스 이름을 지정합니다.

이 추상 클래스 구현은 지정된 요청에서 사용자 요청 헤더를 검사합니다. 사용자 요청 헤더를 통해 프록시 서버는 원래 클라이언트 요청에 대한 정보를 Application Server 인스턴스에 전달하고 해당 정보를 호출자에게 반환합니다. 기본 구현은 Proxy-ip라는 HTTP 요청 헤더에서 클라이언트 IP 주소를, Proxy-keysize라는 HTTP 요청 헤더에서 SSL 키 크기를, Proxy-auth-cert라는 HTTP 요청 헤더에서 SSL 클라이언트 인증서 체인을 읽습니다. Proxy-auth-cert 값은 BEGIN CERTIFICATE 및 END CERTIFICATE 경계가 없고 % d% a로 바뀌는 \n이 있는 BASE-64로 인코딩된 클라이언트 인증서 체인을 포함해야 합니다.

authPassThroughEnabled가 true로 설정된 경우에만 이 등록 정보를 사용할 수 있습니다. 개별 HTTP 또는 HTTPS Listener에서 proxyHandler 등록 정보를 설정한 경우 모든 수신기에 대한 기본 설정을 대체합니다.

asadmin set 명령을 사용하여 HTTP 서비스 또는 개별 HTTP Listener에서 proxyHandler 등록 정보를 설정합니다.

proxyHandler 등록 정보를 모든 HTTP/HTTPS Listener에서 설정하려면 다음 명령을 사용합니다.

asadmin set cluster-name-config.http-service.property.proxyHandler= classname

개별 수신기에서 설정하려면 다음 명령을 사용합니다.

asadmin set cluster-name-config.http-service.http-listener. listener-name.property.proxyHandler= classname

rewrite-location 등록 정보

true로 설정된 경우 rewrite-location 등록 정보는 원래 요청 정보를 다시 쓰고 프로토콜(HTTP 또는 HTTPS), 호스트 및 포트 정보를 포함합니다. 기본적으로 rewrite-location 등록 정보는 이전 Application Server 릴리스와의 호환성을 유지하기 위해 true로 설정됩니다.

rewrite-location 등록 정보는 asadmin create-http-lb-config 또는 asadmin set 명령을 통해 사용할 수 없습니다. 이 등록 정보를 사용하려면 로드 밸런서 구성을 내보낸 후에 loadbalancer.xml 파일에 수동으로 추가합니다. 예를 들어, 내보낸 loadbalancer.xml 파일에 다음을 추가합니다.

<property name="rewrite-location" value="false"/>

rewrite-location 등록 정보를 설정할 때 다음 사항에 주의합니다.

멱등원(Idempotent) URL 구성

멱등원(idempotent) 요청은 다시 시도할 때 응용 프로그램에 변경이나 불일치를 일으키지 않는 요청입니다. HTTP의 경우 일부 메소드(예: GET)는 멱등원(Idempotent)이지만 다른 메소드(예: POST)는 멱등원(Idempotent)이 아닙니다. 멱등원(Idempotent) URL을 재시도할 경우 값이 서버나 데이터베이스에서 변경되지 않습니다. 사용자가 수신한 응답의 변화만이 유일한 차이점입니다.

멱등원(Idempotent) 요청의 예에는 검색 엔진 쿼리와 데이터베이스 쿼리가 포함됩니다. 다시 시도할 때 데이터가 업데이트되거나 수정되지 않는 것이 기본 원칙입니다.

배포된 응용 프로그램의 가용성을 향상시키려면 로드 밸런서가 사용되는 모든 Application Server 인스턴스에서 실패한 멱등원(Idempotent) HTTP 요청을 다시 시도하도록 환경을 구성합니다. 예를 들어, 검색 요청을 다시 시도하려면 읽기 전용 요청에 대해 이 옵션을 사용합니다.

sun-web.xml 파일에 멱등원(Idempotent) URL을 구성합니다. 로드 밸런서 구성을 내보낼 때 멱등원(Idempotent) URL 정보가 loadbalancer.xml 파일에 자동으로 추가됩니다.

멱등원(Idempotent) URL 구성에 대한 자세한 내용은 Sun Java System Application Server 9.1 Developer’s GuideConfiguring Idempotent URL Requests를 참조하십시오.