22.4. JBoss EAP를 프론트 엔드 로드 밸런서로 구성
백엔드 JBoss EAP 서버에 대한 요청을 프록시하기 위해 프런트 엔드 로드 밸런서 장치로 작동하도록 JBoss EAP 및 undertow 하위 시스템을 구성할 수 있습니다. Cryostat는 비동기 IO를 사용하므로 연결을 담당하는 IO 스레드가 요청에 관련된 유일한 스레드입니다. 동일한 스레드가 백엔드 서버에 대한 연결에도 사용됩니다.
다음 프로토콜을 사용할 수 있습니다.
-
HTTP over plain text (
http) HTTP/1 및 HTTP/2 (h2c) 지원 -
HTTP/1 및 HTTP/2(
h2)를 지원하여 보안 연결(https)을 통한 HTTP -
AJP (
ajp)
정적 로드 밸런서 를 정의하고 구성에 백엔드 호스트를 지정하거나 mod_cluster 프론트엔드 를 사용하여 호스트를 동적으로 업데이트할 수 있습니다.
22.4.1. mod_cluster를 사용하여 undertow를 로드 밸런서로 구성 링크 복사링크가 클립보드에 복사되었습니다!
기본 제공 mod_cluster 프런트 엔드 로드 밸런서를 사용하여 다른 JBoss EAP 인스턴스를 로드 밸런싱할 수 있습니다.
이 절차에서는 관리형 도메인에서 실행 중이고 다음과 같이 이미 구성되어 있다고 가정합니다.
로드 밸런서 역할을 하는 JBoss EAP 서버입니다.
이 서버는
load-balancer-sockets 소켓 바인딩 그룹에 바인딩된 load-balancer프로필을 사용합니다.참고로드 밸런서프로필은 이미 소켓 바인딩, mod-cluster Cryostat 필터로 사전 구성되었으며 이 서버를 프런트 엔드 로드 밸런서로 사용하기 위해 기본 호스트의 필터를 참조합니다. * 백엔드 서버 역할을 하는 두 JBoss EAP 서버입니다. ** 이러한 서버는 클러스터에서 실행되고 있으며소켓 바인딩 그룹에 바인딩된 ha 프로필을 사용합니다. * 백엔드 서버에 부하 분산할 배포 가능한 애플리케이션입니다.ha-sockets- mod_cluster 프런트 엔드 로드 밸런서 구성
- 아래 단계는 관리형 도메인의 부하 분산 서버이지만 독립 실행형 서버 세트에 적용되도록 조정할 수 있습니다. 환경에 맞게 관리 CLI 명령 값을 업데이트해야 합니다.
프로세스
mod_cluster 알림 보안 키를 설정합니다.
광고 보안 키를 추가하면 검색 중에 로드 밸런서 및 서버가 인증할 수 있습니다.
다음 관리 CLI 명령을 사용하여 mod_cluster에서 보안 키를 알립니다.
/profile=ha/subsystem=modcluster/proxy=default:write-attribute(name=advertise-security-key, value=mypassword)mod_cluster 로드 밸런서의 보안 키를 업데이트합니다.
다음 관리 CLI 명령을 사용하여 mod_cluster 필터의 보안 키를 설정합니다.
/profile=load-balancer/subsystem=undertow/configuration=filter/mod-cluster=load-balancer:write-attribute(name=security-key,value=mypassword)중요mod_cluster에서만 사용하는 관리 및 광고 소켓 바인딩은 공용 IP 주소가 아닌 내부 네트워크에 노출되는 것이 좋습니다.
로드 밸런서 JBoss EAP 서버는 이제 두 개의 백엔드 JBoss EAP 서버를 로드 밸런싱할 수 있습니다.
- 여러 mod_cluster 구성
mod_cluster하위 시스템은 기본이 아닌 서버를 역방향 프록시에 등록할 수 있는 여러 개의 이름이 지정된 프록시 구성을 지원합니다.또한 단일 애플리케이션 서버 노드가 다른 프록시 서버 그룹에 등록할 수 있습니다.다음 예제에서는
undertow서버에ajp-listener, server 및 host를 추가합니다. 또한 광고 메커니즘을 사용하여 호스트를 등록하는 새로운mod_cluster구성을 추가합니다./socket-binding-group=standard-sockets/socket-binding=ajp-other:add(port=8010) /subsystem=undertow/server=other-server:add /subsystem=undertow/server=other-server/ajp-listener=ajp-other:add(socket-binding=ajp-other) /subsystem=undertow/server=other-server/host=other-host:add(default-web-module=root-other.war) /subsystem=undertow/server=other-server/host=other-host /location=other:add(handler=welcome-content) /subsystem=undertow/server=other-server/host=other-host:write-attribute(name=alias,value=[localhost])) /socket-binding-group=standard-sockets/socket-binding=modcluster-other:add(multicast-address=224.0.1.106,multicast-port=23364) /subsystem=modcluster/proxy=other:add(advertise-socket=modcluster-other,balancer=other-balancer,connector=ajp-other) reload
22.4.2. 로드 밸런서에서 순위가 지정된 세션 선호도 활성화 링크 복사링크가 클립보드에 복사되었습니다!
로드 밸런서에서 순위가 매겨진 세션 선호도를 활성화하여 distributable-web 하위 시스템에서 여러 개의 정렬된 경로를 사용하여 세션 선호도를 설정해야 합니다. distributable-web 하위 시스템 및 다양한 선호도 옵션에 대한 자세한 내용은 JBoss EAP 개발 가이드 의 배포 가능한 웹 세션 구성의 distributable-web 하위 시스템을 참조하십시오.
노드 경로를 구분하는 기본 구분 기호는 . . 입니다. 다른 값을 원하는 경우 선호도 리소스의 구분 기호 특성을 구성할 수 있습니다.
프로세스
로드 밸런서의 순위 지정 세션 선호도를 활성화합니다.
/subsystem=undertow/configuration=filter/mod-cluster=load-balancer/affinity=ranked:add선택 사항:
선호도리소스의구분 기호특성을 구성합니다./subsystem=undertow/configuration=filter/mod-cluster=load-balancer/affinity=ranked:write-attribute(name=delimiter,value=':')
22.4.3. undertow를 정적 로드 밸런서로 구성 링크 복사링크가 클립보드에 복사되었습니다!
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=myroute1, path=/test) /subsystem=undertow/configuration=handler/reverse-proxy=my-handler/host=host2:add(outbound-socket-binding=remote-host2, scheme=ajp, instance-id=myroute2, path=/test)역방향 프록시 위치를 추가하려면 다음을 수행합니다.
/subsystem=undertow/server=default-server/host=default-host/location=\/test:add(handler=my-handler)lb.example.com:8080/app에 액세스하는 경우server1.example.com및server2.example.com에서 프록시된 콘텐츠가 표시됩니다.