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

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