이 절에서는 Application Server 클러스터의 로드 밸런서 역할을 하도록 Web Server 소프트웨어를 설정하는 방법에 대한 지침을 제공합니다. 또한 로드 밸런서를 구성하여 Web Server로 내보내는 절차도 제공합니다. 엔터프라이즈 프로필이나 클러스터 프로필을 사용하는 도메인을 실행 중인 경우에만 로드 밸런서 기능을 사용할 수 있습니다.
로드 밸런서는 클러스터에 배포됩니다. 로드 밸런서는 다음과 같은 기능을 제공합니다.
여러 실제(또는 논리) 호스트에 응용 프로그램이나 서비스를 수평으로 확장할 수 있게 하면서 사용자에게는 단일 URL을 제공합니다.
세션 지속성과 함께 사용할 경우 호스트 오류나 서버 충돌로부터 사용자를 격리합니다.
사용자에게 내부 네트워크가 표시되지 않도록 하여 보안을 강화합니다.
Application Server에는 Sun JavaTM System Web Server, Apache 및 Microsoft Windows IIS와 같은 널리 사용되는 웹 서버용 로드 균형 조정 플러그인이 포함되어 있습니다.
이 절을 완료하기 위해서는 Domain Administration Server, 그리고 지금까지 이 설명서에서 만든 두 개의 Application Server 인스턴스와 함께 Web Server를 실행할 만큼 충분한 메모리가 시스템에 있어야 합니다. 512 ~ 1024MB 메모리의 시스템이 권장됩니다.
이 항목은 다음 내용으로 구성됩니다.
로드 균형 조정을 설정하기 전에 로드 밸런서 플러그인을 설치해야 합니다. 로드 균형 조정 플러그인을 설치하는 방법에 대한 자세한 내용은 Sun Java System Application Server 9.1 Installation Guide의 To Install the Load Balancing Plug-in (standalone)을 참조하십시오. 이 절차에서는 클러스터 프로필 또는 엔터프라이즈 프로필을 사용하여 도메인을 실행 중이라고 가정합니다.
관리 콘솔을 사용하여 로드 밸런서를 만듭니다. asadmin create-http-lb(1) 명령을 사용하여 만들 수도 있습니다.
관리 콘솔에서 HTTP 로드 밸런서 노드를 누릅니다.
새로 만들기를 누릅니다.
로드 밸런서 이름을 lb1로 입력하고 Web Server가 설치된 호스트 및 Web Server 인스턴스 포트를 입력합니다. 이 샘플 시나리오에서 Web Server 호스트는 localhost이고 포트는 38000입니다.
변경 사항 자동 적용 확인란을 선택합니다. 이 옵션을 선택하면 로드 밸런서 구성을 내보낼 필요가 없습니다. 로드 밸런서 구성에서 변경한 모든 내용이 자동으로 전파됩니다.
대상으로 cluster1을 선택합니다.
클러스터 만들기에서 샘플 클러스터(cluster1)를 만드는 방법에 대해 설명합니다.
저장을 누릅니다.
cluster1에서 로드 균형 조정을 사용하도록 설정합니다.
asadmin enable-http-lb-server cluster1
clusterjsp 응용 프로그램에서 로드 균형 조정을 사용하도록 설정합니다.
asadmin enable-http-lb-application clusterjsp
로드 밸런서 구성 변경 또는 상태 검사기 만들기와 같은 고급 항목에 대한 자세한 내용은 Sun Java System Application Server 9.1 고가용성 관리 설명서의 5 장, HTTP 로드 균형 조정 구성을 참조하십시오.
Web Server를 시작하거나 다시 시작하여 로드 균형 조정을 시작합니다.
로드 밸런서로 사용되는 Web Server 인스턴스가 아직 실행되고 있지 않으면 Web Server를 시작합니다.
Web Server 7.0을 사용 중인 경우에는 wadm start-instance 명령을 사용합니다.
Web Server 6.1의 경우 <websvr-instance-dir> 디렉토리의 start 스크립트를 실행합니다.
로드 밸런서로 사용되는 Web Server 인스턴스가 이미 실행 중인 경우에는 Web Server를 중지했다가 다시 시작합니다.
Web Server 6.1의 경우 web_server_install_dir/https-hostname의 중지 프로그램을 사용한 후 시작 프로그램을 실행하여 서버를 다시 시작합니다.
Web Server 7.0의 경우 wadm stop-instance 명령 다음에 wadm start-instance 명령을 사용합니다.
응용 프로그램이 배포된 후 로드 밸런서가 실행되면 로드 균형 조정이 작동하는지 확인합니다.
clusterjsp 응용 프로그램의 첫 페이지를 표시하기 위해 브라우저에 다음 URL을 입력합니다.
http:// localhost:web_server_port /clusterjsp
localhost 변수를 Web Server가 실행되고 있는 시스템 이름으로 바꿉니다.
web_server_port 변수를 web_server_install_dir/https-hostname/config/server.xml에 있는 LS 요소의 포트 속성 값으로 바꿉니다. 이 예에서는 포트 38000이 사용됩니다.
응용 프로그램 배포를 확인하는 방법에 표시된 것과 비슷한 페이지가 나타납니다.
표시된 세션 및 호스트 정보를 검토합니다. 예를 들면 다음과 같습니다.
Executed From Server: localhost
Server Port Number: 38000
Executed Server IP Address: 192.18.145.133
Session Created: Day Mon 05 14:55:34 PDT 2005
서버 포트 번호는 Web Server 포트인 38000입니다. 로드 밸런서가 클러스터의 두 인스턴스에 대한 요청을 전송했습니다.
다른 브라우저 소프트웨어나 다른 시스템의 브라우저를 사용하여 새 세션을 만듭니다. 동일한 브라우저의 요청은 "고정"되어 동일한 인스턴스로 이동합니다.
이 세션은 클러스터의 두 인스턴스에 배포되어야 합니다. 다음 위치에 있는 서버 액세스 로그 파일을 찾아 이 내용을 확인할 수 있습니다.
Solaris Java Enterprise System 설치:
/var/opt/SUNWappserver/nodeagents/nodeagent_name /instance1/logs/access/server_access_log
/var/opt/SUNWappserver/nodeagents/nodeagent_name /instance2/logs/access/server_access_log
Linux Java Enterprise System 설치:
/var/opt/sun/appserver/nodeagents/ nodeagent_name/instance1/logs/access/server_access_log
/var/opt/sun/appserver/nodeagents/ nodeagent_name/instance2/logs/access/server_access_log
Windows Java Enterprise System 설치:
install-dir \nodeagents\nodeagent_name \instance1\logs\access\server_access_log
install-dir\nodeagents\nodeagent_name \instance1\logs\access\server_access_log
독립 실행형 Application Server 설치:
install-dir /nodeagents/nodeagent_name/instance1/logs/access/server_access_log
install-dir/nodeagents/nodeagent_name /instance2/logs/access/server_access_log
HttpSession에 저장하기 위해 이름 및 값 쌍(Name=Name Value=Duke)을 추가합니다.
세션 데이터에 추가 버튼을 누릅니다.
세션 데이터가 추가되었는지 확인합니다.
GlassFish v2는 HADB를 제공하지 않습니다. GlassFish에서는 고가용성 및 페일오버를 위해 메모리 내 복제 기능을 제공합니다. 다음 절차에서는 이 기능에 대해 설명합니다.
응용 프로그램을 배포하기 전에 로드 밸런서 플러그인이 설치된 웹 서버를 다시 시작합니다. 그러면 loadbalancer.xml 파일에 설정된 순서대로 인스턴스가 요청을 처리합니다. 이 장에 제공된 loadbalancer.xml 파일을 사용할 경우 instance1이 첫 번째 요청에 사용됩니다.
세션 데이터를 저장하는 clusterjsp 웹 응용 프로그램은 이미 앞에서 배포했습니다. 첫 번째 요청을 처리한 인스턴스가 후속 요청도 처리하고 요청 전체에서 세션 데이터가 유지되는 것을 확인할 수 있어야 합니다.
요청을 몇 개 전송한 다음 해당 요청을 처리하는 인스턴스를 기록한 후 해당 인스턴스를 종료합니다. 다음 명령을 사용하여 인스턴스를 중지합니다. asadmin stop-instance --user adminuser --password adminpassword instance1
다음 요청을 전송하여 새 데이터가 저장되고 이전에 추가한 데이터가 계속 세션에 남아있는지 확인합니다. 요청을 처리하는 서버 중 하나가 사용할 수 없는 상태일 경우 동일한 클러스터에 속한 다른 서버에서 모든 이전 세션 데이터와 함께 요청을 인계 받아 요청을 완료합니다.