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

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

리디렉션을 사용하여 한 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 등록 정보를 설정할 때 다음 사항에 주의합니다.