24.5. 외부 웹 서버를 프록시 서버로 사용
JBoss EAP는 외부 웹 서버 구성에 따라 지원되는 HTTP, HTTPS 또는 AJP 프로토콜을 사용하여 외부 웹 서버의 요청을 수락할 수 있습니다.
각 웹 서버에 대해 지원되는 HTTP 커넥터에 대한 자세한 내용은 HTTP 커넥터 개요 를 참조하십시오. 사용할 웹 서버 및 HTTP 커넥터를 결정한 후 커넥터 구성에 대한 자세한 내용은 해당 섹션을 참조하십시오.
- Apache HTTP Server 의 mod_cluster, mod_jk 또는 mod_proxy 섹션을 참조하십시오.
- Microsoft IIS의 ISAPI 커넥터 섹션을 참조하십시오.
- Oracle iPlanet Web Server의 NSAPI 커넥터 섹션을 참조하십시오.
HTTP 커넥터에서 지원되는 구성에 대한 최신 정보는 JBoss EAP에서 지원되는 구성을 참조하십시오.
또한 JBoss EAP가 외부 웹 서버의 요청을 수락 하도록 구성되어 있는지 확인해야 합니다.
24.5.1. HTTP 커넥터 개요
JBoss EAP에는 Undertow를 통해 Apache HTTP 서버, Microsoft IIS 및 Oracle iPlanet와 같은 외부 웹 서버에 기본 제공되는 부하 분산 및 클러스터링 메커니즘을 사용할 수 있습니다. JBoss EAP는 커넥터를 사용하여 웹 서버와 통신합니다. 이러한 커넥터는 JBoss EAP의 undertow
하위 시스템 내에 구성됩니다.
웹 서버에는 HTTP 요청이 JBoss EAP 노드로 라우팅되는 방법을 제어하는 소프트웨어 모듈이 포함되어 있습니다. 이러한 각 모듈은 작동 방식과 구성 방법에 따라 달라집니다. 모듈은 여러 JBoss EAP 노드에서 작업 부하를 분산하여 장애 발생 시 또는 둘 다 실행 중인 작업 부하를 대체 서버로 이동하도록 구성됩니다.
JBoss EAP는 여러 다른 커넥터를 지원합니다. 선택하는 것은 사용 중인 웹 서버와 필요한 기능에 따라 다릅니다. JBoss EAP와 호환되는 다양한 HTTP 커넥터의 지원 구성 및 기능을 비교한 내용은 아래 표를 참조하십시오.
JBoss EAP 7 을 다중 플랫폼 로드 밸런서 장치로 사용하기 위해 mod_cluster를 사용하여 Undertow 를 로드 밸런서로 구성에서 참조하십시오.
HTTP 커넥터에서 지원되는 구성에 대한 최신 정보는 JBoss EAP에서 지원되는 구성을 참조하십시오.
표 24.1. HTTP 커넥터 지원 구성
커넥터 | 웹 서버 | 지원되는 운영 체제 | 지원되는 프로토콜 |
---|---|---|---|
Red Hat JBoss Core Services Apache HTTP Server, Red Hat JBoss Web Server Apache HTTP Server, JBoss EAP(Undertow) | Red Hat Enterprise Linux, Microsoft Windows Server, Oracle Solaris | HTTP, HTTPS, AJP, WebSocket | |
Red Hat JBoss Core Services Apache HTTP Server, Red Hat JBoss Web Server Apache HTTP Server | Red Hat Enterprise Linux, Microsoft Windows Server, Oracle Solaris | AJP | |
Red Hat JBoss Core Services Apache HTTP Server, Red Hat JBoss Web Server Apache HTTP Server | Red Hat Enterprise Linux, Microsoft Windows Server, Oracle Solaris | HTTP, HTTPS, AJP | |
Microsoft IIS | Microsoft Windows Server | AJP | |
Oracle iPlanet 웹 서버 | Oracle Solaris | AJP |
표 24.2. HTTP 커넥터 기능
커넥터 | 고정 세션 지원 | 배포 상태에 맞게 조정 |
---|---|---|
있음 | 네, 필요합니다. 애플리케이션 배포 및 배포 취소를 감지하고 애플리케이션이 해당 서버에 배포되었는지 여부에 따라 서버에 클라이언트 요청을 지시할지 여부를 동적으로 결정합니다. | |
있음 | 아니요. 애플리케이션 상태에 관계없이 컨테이너를 사용할 수 있는 한 클라이언트 요청을 컨테이너로 보냅니다. | |
있음 | 아니요. 애플리케이션 상태에 관계없이 컨테이너를 사용할 수 있는 한 클라이언트 요청을 컨테이너로 보냅니다. | |
있음 | 아니요. 애플리케이션 상태에 관계없이 컨테이너를 사용할 수 있는 한 클라이언트 요청을 컨테이너로 보냅니다. | |
있음 | 아니요. 애플리케이션 상태에 관계없이 컨테이너를 사용할 수 있는 한 클라이언트 요청을 컨테이너로 보냅니다. |
24.5.2. Apache HTTP Server
독립 실행형 Apache HTTP Server 번들은 이제 Red Hat JBoss Core Services를 통해 별도의 다운로드로 사용할 수 있습니다. 이렇게 하면 설치 및 구성이 간소화되고 보다 일관된 업데이트 환경을 얻을 수 있습니다.
24.5.2.1. Apache HTTP 서버 설치
Apache HTTP Server 설치에 대한 자세한 내용은 JBoss Core Services Apache HTTP Server 설치 가이드를 참조하십시오.
24.5.3. 외부 웹 서버에서 요청 수락
JBoss EAP는 AJP, HTTP 또는 HTTPS와 같은 올바른 프로토콜 핸들러가 구성된 한 프록시 서버에서 요청 수락을 시작하는 데 특별한 구성이 필요하지 않습니다.
프록시 서버가 mod_jk, mod_proxy, ISAPI 또는 NSAPI를 사용하는 경우 JBoss EAP로 요청을 전송하고 JBoss EAP는 단순히 응답을 제공합니다. 또한 mod_cluster를 사용하면 JBoss EAP에서 요청을 라우팅할 위치를 결정하는 데 도움이 되도록 현재 부하, 애플리케이션 라이프사이클 이벤트 및 상태와 같은 정보를 프록시 서버에 보낼 수 있도록 네트워크를 구성해야 합니다. mod_cluster 프록시 서버 구성에 대한 자세한 내용은 The mod_cluster HTTP Connector 를 참조하십시오.
JBoss EAP 구성 업데이트
다음 절차에서는 예제의 프로토콜 및 포트를 구성해야 하는 프로토콜로 대체합니다.
Undertow의
instance-id
특성을 구성합니다.외부 웹 서버는 instance
-id를 사용하여 커넥터 구성에서 JBoss EAP 인스턴스를
식별합니다. 다음 관리 CLI 명령을 사용하여 Undertow에instance-id
특성을 설정합니다./subsystem=undertow:write-attribute(name=instance-id,value=node1)
위의 예에서 외부 웹 서버는 현재 JBoss EAP 인스턴스를
node1
로 식별합니다.Undertow에 필요한 리스너를 추가합니다.
외부 웹 서버가 JBoss EAP에 연결할 수 있으려면 Undertow에 리스너가 필요합니다. 각 프로토콜에는 소켓 바인딩에 연결된 고유한 리스너가 필요합니다.
참고원하는 프로토콜 및 포트 구성에 따라 이 단계가 필요하지 않을 수 있습니다. HTTP 리스너는 모든 기본 JBoss EAP 구성에서 구성되며 ha 또는 full-ha 프로필을 사용하는 경우 AJP 리스너가 구성됩니다.
기본 서버 구성을 읽어 필요한 리스너가 이미 구성되었는지 확인할 수 있습니다.
/subsystem=undertow/server=default-server:read-resource
Undertow에 리스너를 추가하려면 소켓 바인딩이 있어야 합니다. 소켓 바인딩은 서버 또는 서버 그룹에서 사용하는 소켓 바인딩 그룹에 추가됩니다. 다음 관리 CLI 명령은 포트
8009
에 바인딩된ajp
소켓 바인딩을standard-sockets
소켓 바인딩 그룹에 추가합니다./socket-binding-group=standard-sockets/socket-binding=ajp:add(port=8009)
다음 관리 CLI 명령은
ajp
소켓 바인딩을 사용하여 Undertow에ajp
리스너를 추가합니다./subsystem=undertow/server=default-server/ajp-listener=ajp:add(socket-binding=ajp)