Sun Java System Web Server 7.0 Update 3 관리자 설명서

클러스터 환경

클러스터는 두 개 이상의 노드에 걸쳐 있는 여러 서버 인스턴스의 그룹이며, 모두 동일한 구성으로 실행됩니다. 클러스터에 있는 모든 인스턴스는 함께 작동하며 고가용성, 안정성, 확장 가능성을 제공합니다.

클러스터는 로드 균형 조정을 사용하여 페일오버 및 세션 복제를 수행하며 인터럽트 없는 서비스 및 세션 데이터의 지속성을 제공합니다.

하드웨어 및 소프트웨어 요구 사항

이 절에서 설명하는 사용자 사례에서 Web Server 클러스터는 다음 항목으로 구성됩니다.

1) 4개의 인스턴스(동일한 4개의 노드에서 실행) 

2) Administration Server 

HTTP 요청의 로드 균형 조정을 위한 역방향 프록시 

클러스터를 설정하려면 동일한 운영 체제 버전과 패치가 설치된 두 개 이상의 동일한 노드가 필요합니다. 예를 들어 Solaris® 9 SPARC® 운영 체제를 사용하는 시스템을 선택한 경우 클러스터에 있는 다른 시스템에도 Solaris 9 SPARC가 설치되어 있어야 합니다.

지원되는 플랫폼 및 패치 요구 사항에 대한 자세한 내용은 Sun Java System Web Server 7.0 Update 3 릴리스 노트를 참조하십시오.

다음 그림은 클러스터 환경을 나타냅니다.

그림 4–2 클러스터 설정

클러스터 설정을 나타내는 그림

그림에서 노드는 DMZ(De-Militarized Zone)에 구성되어 있습니다. Administration Server는 방화벽 뒤의 Militarized Zone에 구성되며 Administration Server에 대한 일반 액세스를 제한하고 보호합니다. 다른 노드가 역방향 프록시 서버로 구성됩니다. 역방향 프록시 서버는 보안을 강화하기 위해 DMZ 내부에 상주합니다.


주 –

Solaris 영역 기능은 Solaris 10 운영 체제에서만 지원됩니다.


클러스터 설정

이 절에서는 클러스터를 설정하고 역방향 프록시를 사용 가능하게 설정하여 HTTP 요청의 로드 균형 조정을 지원하는 방법에 대해 설명합니다.

다음 순서도는 클러스터를 설정하는 절차를 나타냅니다.

그림 4–3 클러스터 설정을 나타내는 순서도

클러스터 설정 단계를 나타내는 순서도

  1. 노드 중 하나에 클러스터의 Administration Server 역할을 하는 Web Server를 설치합니다.

  2. 다른 세 개의 노드에 Web Server를 설치합니다. Web Server를 관리 노드로 설치하는 옵션을 선택합니다. 설치 중에 노드를 서버에 등록하는 옵션을 선택합니다.

  3. 관리 노드는 보안 모드에서만 서버에 등록할 수 있기 때문에 Administration Server의 통신에는 SSL 포트만 사용해야 합니다.

  4. Administration Server와 관리 노드가 설치되어 있는 모든 노드의 시스템 날짜와 시간은 같아야 합니다. 서버와 연결된 인증서는 Administration Server가 설치된 노드의 시스템 날짜와 시간을 기반으로 작성됩니다. 관리 노드의 시스템 날짜가 Administration Server보다 이전이면 Administration Server의 인증서가 유효하지 않기 때문에 등록이 실패합니다. 따라서 인증서가 만료된 경우에도 유효한 것으로 처리될 수 있습니다.

  5. install_dir/admin-server/bin/ 디렉토리에서 Administration Server를 시작합니다.

    install_dir/admin-server/bin>./startserv

  6. 관리 노드에서 wadm 명령줄 도구를 시작합니다. wadm 명령줄 도구는 install_dir/bin 디렉토리에 있습니다.

    install_dir/bin>./wadm

  7. 각 관리 노드를 Administration Server에 등록합니다. register-node 명령을 사용하여 각 노드를 서버에 등록합니다.

    예:


    ./wadm register-node -user=admin --host=abc.sfbay.sun.com --port=8989

    여기서

    abc.sfbay.sun.com

    노드를 등록할 Administration Server의 호스트 이름입니다.

    port

    Administration Server의 SSL 포트 번호입니다.

  8. 관리 비밀번호를 입력하는 프롬프트가 표시됩니다. Administration Server의 관리 비밀번호를 입력합니다.

    Administration Server와 관리 노드는 Administration Server에서 관리 노드의 서버 인증서를 신뢰하고 관리 노드에서 Administration Server가 제공하는 클라이언트 인증서를 신뢰하는 방식으로 서로를 인증합니다. 관리 노드를 등록하는 동안 Administration Server가 해당 관리 노드의 서버 인증서를 생성합니다. 그러면 이 인증서가 다운로드되고 관리 노드에 설치됩니다. 서버 인증서 발급자도 관리 노드에 설치됩니다.


    주 –

    등록은 SSL을 통해서만 수행될 수 있습니다.


    노드 등록에 대한 자세한 내용은 Sun Java System Web Server 7.0 Update 3 Installation and Migration GuideRegistering the Administration Node From the Command-Line을 참조하십시오.

  9. install_dir/admin-server/bin/ 디렉토리에서 startserv 명령을 사용하여 모든 관리 노드를 시작합니다.

  10. 관리 콘솔 또는 CLI를 사용하여 Administration Server에 새 구성을 만듭니다.

    구성 이름, HTTP Listener 포트 및 서버 이름과 같은 구성 정보를 새 구성에 지정합니다.

  11. 모든 노드에 구성 인스턴스를 만듭니다.

  12. 모든 노드에서 인스턴스를 시작합니다.


    주 –

    Web Server에는 클러스터를 확장 또는 축소할 수 있는 유연성이 있습니다. 언제든지 인스턴스를 클러스터에 추가하거나 클러스터에서 제거할 수 있습니다.


로드 균형 조정을 위한 역방향 프록시 구성

Web Server 7.0은 정교한 내장 로드 밸런서인 역방향 프록시를 제공합니다. 역방향 프록시는 서버 팜에 있는 Web Server의 게이트웨이입니다. 역방향 프록시를 구성하면 비슷하게 구성된 여러 개의 웹 서버로 요청이 전달됩니다.

다음 절차에 따라 Web Server 7.0에서 역방향 프록시를 사용 가능하게 설정합니다.

  1. 역방향 프록시 구성에 사용할 노드에 Web Server를 설치합니다.

  2. 구성을 만듭니다. 예를 들면 rp와 같습니다.

  3. 관리 콘솔을 사용하여 구성 > 가상 서버 > 내용 처리 > 역방향 프록시 탭을 선택합니다. 새로 만들기 버튼을 누릅니다.

  4. 역방향 프록시 URI와 클러스터에 있는 모든 시스템의 서버 URL을 쉼표로 구분하여 입력합니다.

    서버 URL은 hostname: portnumber 형식으로 입력합니다.

  5. 변경 사항을 저장합니다.

  6. 수정된 구성을 배포하여 변경 사항을 구성에 적용합니다.

  7. 이렇게 수정된 구성의 모든 인스턴스를 시작합니다.

그러면 HTTP 요청의 로드 균형 조정을 위한 역방향 프록시 구성이 완료됩니다.


주 –

클러스터 환경에서 역방향 프록시를 구성하려면 와일드카드 서버 인증서를 발행하거나 원래 서버의 실제 호스트 이름으로 설정할 수 있는 대체 주체 이름을 지정합니다. 개체 이름 필드에 원래 서버의 호스트 이름을 지정하는 다른 옵션의 경우 클러스터의 크기가 제한되므로 클러스터에 노드를 더 추가할 경우 클러스터가 작동하지 않을 수 있습니다.

관리 인터페이스를 사용하여 와일드카드 서버 인증서를 만들 수 있습니다. 서버 인증서를 만든 후 certutil을 사용하여 base64로 암호화된 버전의 인증서를 받은 다음 로드 밸런서 구성에 신뢰할 수 있는 CA 인증서로 설치합니다.

base64 암호화 인증서를 생성하려면 다음 명령을 입력합니다. bash$./certutil -L -a -d instancedir/config. 명령 결과를 복사하여 인증서 설치 마법사에 붙여넣습니다.


역방향 프록시에서 시간 초과 매개 변수 구성

Procedure역방향 프록시에서 시간 초과 매개 변수를 구성하는 방법

  1. 관리 콘솔에 로그인합니다.

  2. 목록에서 구성을 선택합니다.

  3. 가상 서버 편집 버튼을 누릅니다.

  4. 내용 처리 탭을 누릅니다.

  5. 역방향 프록시 하위 탭을 누릅니다.

  6. 역방향 프록시 목록에서 URI를 누릅니다.

    새 창이 열립니다.

  7. HTTP 클라이언트 구성 링크를 누릅니다.

  8. 유휴 시간 초과 매개 변수를 편집할 수 있습니다. 기본값은 300입니다.

백엔드 인스턴스 모니터링

이 절에서는 백엔드 인스턴스의 상태 확인에 대해 자세하게 설명합니다.

Web Server 7.0의 route_offline_thread는 백엔드 인스턴스의 상태를 확인합니다. OPTIONS HTTP 요청을 전송하여 활성 상태의 모든 백엔드 인스턴스를 조회합니다. 서버가 응답하면 백엔드 인스턴스가 활성 상태임이 확인됩니다. 초기 단계 이후에는 스레드에서 60초(이 시간 주기는 구성할 수 없음)마다 오프라인 백엔드 인스턴스의 상태를 확인합니다. 이제 route_offline_thread는 오프라인 인스턴스에 연결을 시도하고 성공적으로 연결되면 OPTIONS HTTP 요청을 전송합니다. 인스턴스가 응답하면 대기 상태에서 복구되는 즉시 route_offline_thread가 해당 인스턴스를 온라인으로 식별합니다. 따라서 스레드는 시스템과 백엔드 인스턴스의 성능에 영향을 미치지 않습니다.

백엔드 인스턴스가 온라인으로 확인된 후에 종료되거나 중단되면 route_offline_thread가 상태를 추적할 수 없습니다. 이러한 인스턴스가 Web Server 역방향 프록시 매개 변수로 선택된 경우, 요청 처리 시 인스턴스 연결이 끊어졌음을 나타내는 읽기 또는 전송 오류가 발생합니다.

obj.conf 파일에서 http-client-config ObjectType 함수를 사용하여 응답 시간 초과 값을 정의할 수 있습니다.


ObjectType fn="http-client-config" timeout="400"

주 –

기본 시간 초과 값은 300초입니다.


응답 시간 초과 값을 정의한 경우 역방향 프록시 매개 변수에서 연결이 400초 이상 지연될 경우 백엔드 인스턴스 연결을 종료하고 해당 인스턴스를 오프라인으로 식별합니다.

역방향 프록시 매개 변수에서 보류 중이거나 과도하게 사용 중인 백엔드 인스턴스와 연결을 시도하는 경우 최대 5초 동안 연결 응답을 기다린 후 인스턴스를 오프라인으로 식별합니다.

그래픽 인터페이스에서 Web Server를 역방향 프록시로 사용

Procedure그래픽 인터페이스에서 역방향 프록시를 구성하는 방법

  1. 관리 콘솔에 로그인합니다.

  2. 목록에서 구성을 선택합니다.

  3. 가상 서버 편집 버튼을 누릅니다.

  4. 내용 처리 탭을 누릅니다.

  5. 역방향 프록시 하위 탭을 누릅니다.

  6. 새로 만들기 버튼을 누릅니다.

    새 창이 열립니다.

  7. 요청을 모두 역방향 프록시로 설정하려면 URI에 (/)를 입력합니다. 또한 역방향 프록시로 설정할 URI를 입력합니다.

  8. 프록시 방향을 반대로 바꿀 서버의 URL을 입력합니다.

    예: http://<content server-hostname>:port

  9. 확인 버튼을 누릅니다.

  10. 화면 오른쪽 상단에 있는 보류 중인 배포 링크를 누릅니다.

  11. 배포 버튼을 누릅니다.

    배포 성공 메시지가 표시됩니다.

  12. 구성 탭을 누릅니다.

  13. 인스턴스를 시작합니다.

    역방향 프록시로 구성한 URI에 액세스합니다.

역방향 프록시 사용자 정의

조건부 요청 처리를 구성하려면 가상 서버별 obj.conf 파일을 수동으로 편집해야 합니다.

예를 들어 모든 .jsp, .php 요청에 대해 역방향 프록시를 구성하려는 경우입니다. 다음 텍스트를 obj.conf 파일에 삽입해야 합니다.


<If $uri =~ '.jsp$' or $uri =~ '.php$'> 
NameTrans fn="map" from="/" to="http:/" name="custom_reverse_proxy"
</If>

주 –

객체 이름 default 아래에 위의 텍스트를 삽입해야 합니다. obj.conf 파일 끝에 다음 텍스트를 추가합니다.


<Object name ="custom_reverse_proxy">
Route fn="set-origin-server" server="http://<hostname>:<port>"
</Object>

<Object name ppath="http:*"
Service fn="proxy-retrieve" method="*"
</Object>

CLI 모드에서 Web Server를 역방향 프록시로 사용

CLI 모드로 역방향 프록시를 구성하려면 아래 단계를 수행합니다. 예를 들어 config1 구성을 만든 다음 rp 인스턴스를 역방향 프록시로 만듭니다.

  1. Administration Server를 시작합니다.

    $ <install-dir>/admin-server/bin/startserv

  2. CLI 쉘을 호출합니다.

    <install-dir> /admin-server/bin/wadm -user <username>

    이제 wadm 쉘이 보입니다.

  3. config1을 만듭니다.

    wadm>create-config --http-port 8080 --server-name config1 --server-user root config1

  4. config1 구성에 대해 인스턴스를 만듭니다.

    wadm>create-instance --config config1 <host-name>

  5. 작성된 구성에서 웹 응용 프로그램을 추가합니다.

    wadm>add-webapp --config config1 -vs config1 --uri/test <warfile>

  6. 웹 응용 프로그램을 배포합니다.

    wadm>deploy-config --user=admin --password-file=admin.pwd --host=serverhost --port=8989 config1

  7. rp 구성을 만듭니다.

    wadm>create-config --http-port 8081 --server-name rp --server-user root rp

    다음 명령을 사용하여 역방향 프록시에 대해 rp 구성을 활성화합니다.

    wadm>create-reverse-proxy --config rp --vs rp --uri-prefix/--server http://<host-name>:8080

  8. rp 구성에 대한 인스턴스를 만듭니다.

    wadm>create-instance --config rp <host-name>

  9. 인스턴스를 시작합니다.

    wadm>start-instance --config config1 <host-name>

    wadm>start-instance --config rp <hostname>

이제 config1으로 배포된 웹 응용 프로그램을 rp 인스턴스를 통해 볼 수 있습니다.

http://<rp instance hostname>:8081/test