24.5. 외부 웹 서버를 프록시 서버로 사용

JBoss EAP는 외부 웹 서버 구성에 따라 지원되는 HTTP, HTTPS 또는 AJP 프로토콜을 사용하여 외부 웹 서버의 요청을 수락할 수 있습니다.

각 웹 서버에 대해 지원되는 HTTP 커넥터에 대한 자세한 내용은 HTTP 커넥터 개요 를 참조하십시오. 사용할 웹 서버 및 HTTP 커넥터를 결정한 후 커넥터 구성에 대한 자세한 내용은 해당 섹션을 참조하십시오.

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 커넥터 지원 구성

커넥터웹 서버지원되는 운영 체제지원되는 프로토콜

mod_cluster

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

mod_jk

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

mod_proxy

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

ISAPI 커넥터

Microsoft IIS

Microsoft Windows Server

AJP

NSAPI 커넥터

Oracle iPlanet 웹 서버

Oracle Solaris

AJP

표 24.2. HTTP 커넥터 기능

커넥터고정 세션 지원배포 상태에 맞게 조정

mod_cluster

있음

네, 필요합니다. 애플리케이션 배포 및 배포 취소를 감지하고 애플리케이션이 해당 서버에 배포되었는지 여부에 따라 서버에 클라이언트 요청을 지시할지 여부를 동적으로 결정합니다.

mod_jk

있음

아니요. 애플리케이션 상태에 관계없이 컨테이너를 사용할 수 있는 한 클라이언트 요청을 컨테이너로 보냅니다.

mod_proxy

있음

아니요. 애플리케이션 상태에 관계없이 컨테이너를 사용할 수 있는 한 클라이언트 요청을 컨테이너로 보냅니다.

ISAPI 커넥터

있음

아니요. 애플리케이션 상태에 관계없이 컨테이너를 사용할 수 있는 한 클라이언트 요청을 컨테이너로 보냅니다.

NSAPI 커넥터

있음

아니요. 애플리케이션 상태에 관계없이 컨테이너를 사용할 수 있는 한 클라이언트 요청을 컨테이너로 보냅니다.

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 구성 업데이트

다음 절차에서는 예제의 프로토콜 및 포트를 구성해야 하는 프로토콜로 대체합니다.

  1. Undertow의 instance-id 특성을 구성합니다.

    외부 웹 서버는 instance -id를 사용하여 커넥터 구성에서 JBoss EAP 인스턴스를 식별합니다. 다음 관리 CLI 명령을 사용하여 Undertow에 instance-id 특성을 설정합니다.

    /subsystem=undertow:write-attribute(name=instance-id,value=node1)

    위의 예에서 외부 웹 서버는 현재 JBoss EAP 인스턴스를 node1 로 식별합니다.

  2. 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)