jboss_eap_7_reverse_proxy_구성

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
jboss_eap_7_reverse_proxy_구성 [2020/03/17 02:42] – 만듦 koovjboss_eap_7_reverse_proxy_구성 [2026/04/13 06:28] (현재) – [JBoss EAP 7 Reverse Proxy 구성] koov
줄 1: 줄 1:
 +====== JBoss EAP 7 Reverse Proxy 구성 ======
 + --- //[[koovis@gmail.com|이강우]] 2026/04/13 05:35//
 +
 +{{:was:jboss:jboss_reverse_proxy.png|}}
 +원래대로라면 ''추천방법''을 사용하여 ''외부망 WEB - 내부망 WAS'' 형태로 연동하는것을 권장하지만 그게 불가능한 경우에 구성하는 방법이다.
 +일반적으로 내/외부망이 분리된 곳에서 외부망 서비스를 위해 내부망의 WAS에 프록시로 접근하려고 하는 경우에 고려해볼수 있는 구성이다.
 +외부망에는 보안상 또는 특정한 사유로 인해 소스나 DB등을 위치시킬수 없는 경우. 아니면 이미 내부에 구현된 서비스를 외부로 서비스하고자 하는 요청이 있는경우 구성하는 형태이다.
 +
 +
 +  * **JBoss EAP 7.x 릴리스에 이 기능이 도입되었습니다.** 
 +  * ''JBoss EAP 6.x 또는 이전 버전은 요청을 프록시 할 수 없습니다.'' mod_proxy, mod_cluster 또는 mod_jk 모듈 대신 프록시에 ''Apache httpd를 사용''하십시오.
 +
 +
 +<WRAP center round important 60%>
 +아래의 내용은 모두 ''외부망WAS''에 적용해야 되는 내용이며 예제의 ''10.10.10.10:8109'' 은 ''내부망WAS''의 아이피입니다.
 +</WRAP>
 +
 +===== 프록시 핸들러 추가 =====
 +첫 번째 단계는 리버스 프록시 핸들러를 Undertow 서브 시스템에 추가하는 것입니다.
 +즉 리버스 프록시 역할을 해주는 핸들러를 하나 생성하는단계.
 +
 +<WRAP prewrap>
 +<code bash>
 +/subsystem=undertow/configuration=handler/reverse-proxy=LBProxy/:add(cached-connections-per-thread=5,connection-idle-timeout=60,connections-per-thread=10,max-request-time=-1,problem-server-retry=30,request-queue-size=10,session-cookie-names=JSESSIONID)
 +</code>
 +</WRAP>
 +
 +===== 프록시 타겟 설정 =====
 +
 +원격 호스트에 대한 아웃 바운드 소켓 바인딩을 정의하십시오. 
 +리버스 프록싱 하기 위한 타겟 서버 정보를 바인딩 그룹에 추가하도록 한다.
 +  * 대상서버 : ''10.10.10.10''
 +  * 대상포트 : ''8109 (AJP)''
 +
 +<WRAP prewrap>
 +<code bash>
 +/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=backend-host1/:add(host=10.10.10.10,port=8109)
 +</code>
 +</WRAP>
 +
 +===== 리버스 프록시를 서비스 하기 위한 호스트 추가 =====
 +
 +프록시 핸들러를 리버스하기 위해 원격 백엔드 호스트를 추가하십시오.
 +  * 대상컨텍스트 : ''/TestApp''
 +  * 대상인스턴스ID : ''node1''
 +
 +<WRAP prewrap>
 +<code bash>
 +/subsystem=undertow/configuration=handler/reverse-proxy=LBProxy/host=backend-host1/:add(instance-id=node1,outbound-socket-binding=backend-host1,path=/TestApp,scheme=ajp)
 +</code>
 +</WRAP>
 +
 +===== default-server 서비스 핸들러 추가 =====
 +
 +기본 서버의 위치에 핸들러를 추가하십시오.
 +
 +<WRAP prewrap>
 +<code bash>
 +/subsystem=undertow/server=default-server/host=default-host/location=\/TestApp/:add(handler=LBProxy)
 +</code>
 +</WRAP>
 +
 +===== 결과 =====
 +
 +결과 XML 구성은 다음과 같습니다.
 +
 +  * Undertow 서브 시스템의 경우
 +<WRAP prewrap>
 +<code xml>
 +<subsystem xmlns="urn:jboss:domain:undertow:3.1">
 +    <buffer-cache name="default"/>
 +    <server name="default-server">
 +        <http-listener name="default" socket-binding="http" redirect-socket="https"/>
 +        <host name="default-host" alias="localhost">
 +            <location name="/" handler="welcome-content"/>
 +            <location name="/TestApp" handler="LBProxy"/>
 +            <filter-ref name="server-header"/>
 +            <filter-ref name="x-powered-by-header"/>
 +        </host>
 +    </server>
 +    <servlet-container name="default">
 +        <jsp-config/>
 +        <websockets/>
 +    </servlet-container>
 +    <handlers>
 +        <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
 +        <reverse-proxy name="LBProxy" connection-idle-timeout="60">
 +            <host name="backend-host1" outbound-socket-binding="backend-host1" scheme="ajp" path="/TestApp" instance-id="node1"/>
 +        </reverse-proxy>
 +    </handlers>
 +    <filters>
 +        <response-header name="server-header" header-name="Server" header-value="JBoss-EAP/7"/>
 +        <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
 +    </filters>
 +</subsystem>
 +</code>
 +</WRAP>
 +
 +  * 아웃 바운드 소켓 바인딩의 경우
 +
 +<WRAP prewrap>
 +<code xml>
 +<outbound-socket-binding name="backend-host1">
 +    <remote-destination host="10.10.10.10" port="8109"/>
 +</outbound-socket-binding>
 +</code>
 +</WRAP>
 +
 +브라우저가 http://localhost:8080/TestApp을 가리키면 프록시 컨텐츠를 볼 수 있어야합니다.
 +
 +===== 참조링크 =====
 +  * https://access.redhat.com/solutions/2463121