22.4. JBoss EAP를 프론트 엔드 로드 밸런서로 구성
백엔드 JBoss EAP 서버에 대한 요청을 프록시하기 위해 프런트 엔드 로드 밸런서 장치로 작동하도록 JBoss EAP 및 undertow
하위 시스템을 구성할 수 있습니다. Cryostat는 비동기 IO를 사용하므로 연결을 담당하는 IO 스레드가 요청에 관련된 유일한 스레드입니다. 동일한 스레드가 백엔드 서버에 대한 연결에도 사용됩니다.
다음 프로토콜을 사용할 수 있습니다.
정적 로드 밸런서 를 정의하고 구성에 백엔드 호스트를 지정하거나 mod_cluster 프론트엔드 를 사용하여 호스트를 동적으로 업데이트할 수 있습니다.
22.4.1. mod_cluster를 사용하여 Cryostat를 로드 밸런서로 구성
기본 제공 mod_cluster 프런트 엔드 로드 밸런서를 사용하여 다른 JBoss EAP 인스턴스를 로드 밸런싱할 수 있습니다.
이 절차에서는 관리형 도메인에서 실행 중이고 다음과 같이 이미 구성되어 있다고 가정합니다.
로드 밸런서 역할을 하는 JBoss EAP 서버입니다.
-
이 서버는
standard-sockets
소켓 바인딩 그룹에 바인딩된기본
프로필을 사용합니다.
-
이 서버는
백엔드 서버 역할을 하는 두 개의 JBoss EAP 서버.
-
이러한 서버는 클러스터에서 실행 중이며
ha
-sockets
-
이러한 서버는 클러스터에서 실행 중이며
- 부하 분산할 배포 가능한 애플리케이션은 백엔드 서버에 배포됩니다.
mod_cluster 프런트 엔드 로드 밸런서 구성
아래 단계는 관리형 도메인의 부하 분산 서버이지만 독립 실행형 서버 세트에 적용되도록 조정할 수 있습니다. 환경에 맞게 관리 CLI 명령 값을 업데이트해야 합니다.
mod_cluster 알림 보안 키를 설정합니다.
광고 보안 키를 추가하면 검색 중에 로드 밸런서 및 서버가 인증할 수 있습니다.
다음 관리 CLI 명령을 사용하여 mod_cluster에서 보안 키를 알립니다.
/profile=ha/subsystem=modcluster/mod-cluster-config=configuration:write-attribute(name=advertise-security-key, value=mypassword)
mod_cluster용 멀티캐스트 주소 및 포트를 사용하여 소켓 바인딩을 생성합니다.
로드 밸런싱을 위한 서버 검색 및 통신에 사용할 mod_cluster의 소켓 구성을 생성해야 합니다.
다음 관리 CLI 명령을 사용하여 적절한 멀티캐스트 주소 및 포트가 구성된
modcluster
소켓 바인딩을 추가합니다./socket-binding-group=standard-sockets/socket-binding=modcluster:add(multicast-port=23364, multicast-address=224.0.1.105)
mod_cluster 로드 밸런서를 포함합니다.
광고 보안 키 및 소켓 바인딩을 설정한 후에는 JBoss EAP의 로드 밸런서 인스턴스에 mod_cluster 필터를 Cryostat에 추가해야 합니다.
다음 관리 CLI 명령을 사용하여 mod_cluster 필터를 추가합니다.
/profile=default/subsystem=undertow/configuration=filter/mod-cluster=modcluster:add(management-socket-binding=http, advertise-socket-binding=modcluster, security-key=mypassword)
다음 관리 CLI 명령을 사용하여 mod_cluster 필터를 기본 호스트에 바인딩합니다.
/profile=default/subsystem=undertow/server=default-server/host=default-host/filter-ref=modcluster:add
mod_cluster에서만 사용하는 관리 및 광고 소켓 바인딩은 공용 IP 주소가 아닌 내부 네트워크에 노출되는 것이 좋습니다.
로드 밸런서 JBoss EAP 서버는 이제 두 개의 백엔드 JBoss EAP 서버를 로드 밸런싱할 수 있습니다.
22.4.2. Cryostat를 정적 로드 밸런서로 구성
Cryostat를 사용하여 정적 로드 밸런서를 구성하려면 undertow
하위 시스템에서 프록시 처리기를 구성해야 합니다. Cryostat에서 프록시 처리기를 구성하려면 정적 로드 밸런서로 사용할 JBoss EAP 인스턴스에서 다음을 수행해야 합니다.
- 역방향 프록시 처리기 추가
- 각 원격 호스트에 대한 아웃바운드 소켓 바인딩 정의
- 역방향 프록시 처리기에 각 원격 호스트 추가
- 역방향 프록시 위치 추가
다음 예제에서는 JBoss EAP 인스턴스를 정적 로드 밸런서 장치로 구성하는 방법을 보여줍니다. JBoss EAP 인스턴스는 lb.example.com
에 있으며, server1.example.com
과 server2.example.com
이라는 두 개의 추가 서버 간에 부하를 분산합니다. 로드 밸런서는 /app
위치로 역방향 프록시되고 Cryostat 프로토콜을 수행합니다.
역방향 프록시 처리기를 추가하려면 다음을 수행합니다.
/subsystem=undertow/configuration=handler/reverse-proxy=my-handler:add
각 원격 호스트에 대한 아웃바운드 소켓 바인딩을 정의하려면 다음을 수행합니다.
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-host1/:add(host=server1.example.com, port=8009) /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=remote-host2/:add(host=server2.example.com, port=8009)
역방향 프록시 처리기에 각 원격 호스트를 추가하려면 다음을 수행합니다.
/subsystem=undertow/configuration=handler/reverse-proxy=my-handler/host=host1:add(outbound-socket-binding=remote-host1, scheme=ajp, instance-id=myroute, path=/test) /subsystem=undertow/configuration=handler/reverse-proxy=my-handler/host=host2:add(outbound-socket-binding=remote-host2, scheme=ajp, instance-id=myroute, path=/test)
역방향 프록시 위치를 추가하려면 다음을 수행합니다.
/subsystem=undertow/server=default-server/host=default-host/location=\/app:add(handler=my-handler)
lb.example.com:8080/app
에 액세스하는 경우 server1.example.com
및 server2.example.com
에서 프록시된 콘텐츠가 표시됩니다.