Sun Java System Application Server 9.1 고가용성 관리 설명서

4장 로드 균형 조정을 사용하도록 웹 서버 구성

이 장에서는 Application Server 9.1 및 GlassFish v2에서 사용 가능한 로드 밸런서 플러그인이 지원하는 웹 서버 구성 방법에 대해 설명합니다. Application Server 9.1에서 사용 가능한 로드 밸런서 플러그인은 다음 웹 서버를 지원합니다.


주 –

GlassFish v2는 Sun Java System Web Server(버전 6.1 및 7.0)만 지원합니다. GlassFish v2에서 로드 밸런서 플러그인을 사용하려면 로드 밸런서 플러그인을 수동으로 설치하고 구성해야 합니다. GlassFish v2에서 로드 밸런서 플러그인을 설치하는 방법에 대한 자세한 내용은 Sun Java System Application Server 9.1 Installation Guide의 1 장, Installing Application Server Software를 참조하십시오.


Application Server 9.1 설치 프로그램의 일부인 로드 밸런서 플러그인 설치 프로그램은 웹 서버의 구성 파일을 수정합니다. 변경되는 내용은 사용 중인 웹 서버에 따라 다릅니다. 또한 일부 웹 서버의 경우 로드 밸런서가 제대로 작동하려면 수동으로 구성해야 합니다.


주 –

로드 밸런서 플러그인은 Sun Java System Application Server 9.1과 함께 설치하거나, 지원되는 웹 서버가 실행되는 시스템에 별도로 설치할 수 있습니다. 설치 절차에 대한 자세한 내용은 Sun Java System Application Server 9.1 Installation Guide의 1 장, Installing Application Server Software를 참조하십시오.


Sun Java System Web Server 구성

Sun Java System Web Server의 경우 Sun Java System Application Server 9.1 설치 마법사를 사용하여 로드 밸런서를 설치할 때 설치 마법사가 필요한 모든 구성을 자동으로 수행합니다. 수동 구성이 필요하지 않습니다. Application Server 9.1과 함께 제공되는 로드 밸런서 플러그인에서 지원하는 Sun Java System Web Server 버전은 다음과 같습니다.

하지만 GlassFish v2를 사용하는 경우에는 Application Server 로드 밸런서 플러그인을 http://download.java.net/javaee5/external/SunOS_X86/aslb/jars/aslb-9.1-MS4-b7.jar에서 별도로 다운로드하여 수동으로 설정해야 합니다. GlassFish v2용 플러그인의 설치 및 설정 방법에 대한 자세한 절차는 Sun Java System Application Server 9.1 Installation GuideTo Install the Load Balancing Plug-in (standalone)을 참조하십시오.

ProcedureSun Java System Web Server 구성

시작하기 전에

주 –

다음 단계는 Application Server 9.1용 설치 프로그램에 의해 자동으로 수행되지만, GlassFish v2를 사용하는 경우에는 이러한 절차를 수동으로 수행해야 합니다.


  1. 웹 서버 인스턴스의 magnus.conf파일에 다음 줄을 추가합니다.

    ##BEGIN EE LB Plug-in Parameters
    Init fn="load-modules"
    shlib="web-server-install-dir/plugins/lbplugin/bin/libpassthrough.so"
    funcs="init-passthrough,service-passthrough,name-trans-passthrough" Thread="no"
    Init fn="init-passthrough"
    ##END EE LB Plug-in Parameters=
  2. 다음 줄이 없는 경우 추가합니다.

    Init fn="load-modules" shlib=".../libj2eeplugin.so" shlib_flags="(global|now)"
  3. web-server-install-dir/config/obj.conf 파일에서 처음 나타나는 nametrans 문자열 앞에 한 줄로 다음을 삽입합니다.

    Nametrans fn="name-trans-passthrough" name="lbplugin"
    config-file="web-server-install-dir/config/loadbalancer.xml"

    NameTrans 항목이 obj.conf에 나타나는 순서는 매우 중요합니다. 설치 프로그램은 NameTrans 항목을 올바른 위치에 놓지만 다른 목적으로 obj.conf를 편집하는 경우 순서가 올바른 상태로 유지되는지 확인해야 합니다. 특히 로드 밸런서 정보가 document-root 함수 앞에 와야 합니다. obj.conf 파일에 대한 자세한 내용은 Sun Java System Web Server 7.0 Administrator’s Configuration File Reference를 참조하십시오.

  4. web-server-install-dir/config/obj.conf 파일에 다음 줄을 추가합니다.

    <Object name = "lbplugin"> 
    ObjectType fn="force-type" type="magnus-internal/lbplugin"
    PathCheck fn="deny-existence" path="*/WEB-INF/*"
    Service type="magnus-internal/lbplugin" fn="service-passthrough"
    Error reason="Bad Gateway" fn="send-error" uri="$docroot/badgateway.html"
    </Object>
  5. web-server-install-dir/start 스크립트를 편집하여 app-server-install-dir/lib/lbplugin/lib를 포함하도록 LD_LIBRARY_PATH 값을 업데이트합니다.

    app-server-install-dir/lib/lbplugin/lib 디렉토리에 로드 밸런서 플러그인에 필요한 바이너리가 포함되어 있습니다.

  6. (옵션) 새 DAS 기반 로드 밸런서 관리의 경우 SSL을 사용하도록 웹 서버를 구성합니다.

    Web Server 6.1에 대한 자세한 지침은 Sun Java System Web Server 6.1에 대해 SSL 모드에서 로드 밸런서 설정 을 참조하십시오.

    Web Server 7에 대한 자세한 지침은 Web Server 7에 대해 SSL 모드에서 로드 밸런서 설정을 참조하십시오.

  7. 웹 서버가 아직 실행 중이지 않으면 웹 서버를 시작합니다.

자동 적용을 사용하도록 Sun Java System Web Server 구성

자동 적용은 Application Server 9.1에서 제공되는 기능으로, 로드 밸런서 구성을 자동으로 웹 서버 구성 디렉토리로 전송합니다. 이 기능에 대한 자세한 내용은 자동 적용을 참조하십시오. 다음 절차에서는 이 기능을 사용하도록 Sun Java System Web Server(버전 6 및 7)를 구성하는 방법에 대해 설명합니다.

ProcedureSun Java System Web Server 6.1에 대해 SSL 모드에서 로드 밸런서 설정


주 –

로드 밸런서 플러그인의 자동 적용 기능을 사용하려는 경우에만 이 절의 단계를 수행합니다. 이 기능을 사용하면 로드 밸런서 구성을 자동으로 웹 서버 구성 디렉토리로 전송할 수 있습니다.


  1. 브라우저를 사용하여 Web Server의 관리 콘솔에 액세스하고 로그인합니다.

  2. 서버 인스턴스를 선택하고 관리를 누릅니다.

  3. 보안 탭을 누릅니다.

  4. 사용자 이름과 비밀번호를 지정하여 트러스트 데이터베이스를 초기화합니다. 이 작업은 certutil 명령 또는 GUI를 사용하여 수행할 수 있습니다. certutil 명령의 다음 옵션을 사용하여 트러스트 데이터베이스를 초기화할 수 있습니다.

    certutil -N -P  "https-instance-name-hostname-" -d .
    • certutil에서 메시지가 나타나면 키를 암호화할 비밀번호를 입력합니다. 키 암호화에 사용될 비밀번호를 입력합니다. 비밀번호는 길이가 최소 8자 이상이어야 하며 적어도 한 개의 알파벳이 아닌 문자를 포함해야 합니다.

    • 새 비밀번호를 입력하라는 메시지가 나타나면 비밀번호를 지정합니다.

  5. 다음 명령을 사용하여 샘플 로컬 인증 기관(CA)을 만듭니다.

    certutil -S -P "https-boqueron.virkki.com-boqueron-" 
    -d . -n SelfCA -s "CN=Self CA,OU=virkki.com,C=US" 
    -x -t "TC,TC,TC" -m 101 -v 99 -5
    1. 인증서 유형으로 0-7을 입력하라는 메시지가 나타나면 5(SSL CA)를 입력합니다. 프롬프트가 다시 나타나면 9를 지정합니다.

    2. “Is this a critical extension [y/n]?”라는 메시지가 나타나면 “y”를 지정합니다.

  6. 위의 샘플 CA를 사용하여 인증서를 생성합니다.

    certutil -S -P "https-instance-name-hostname-"
    -d . -n MyServerCert -s "CN=boqueron.virkki.com,C=US"
    -c SelfCA -t "u,u,u" -m 102 -v 99 -5
    1. 인증서 유형으로 0-7을 입력하라는 메시지가 나타나면 1(SSL Server)을 입력합니다. 프롬프트가 다시 나타나면 9를 지정합니다.

    2. “Is this a critical extension [y/n]?”라는 메시지가 나타나면 “y”를 지정합니다.

  7. 다음 단계의 설명에 따라 HTTPS 수신기를 만듭니다.

    1. 웹 서버의 Administration Server에 로그온합니다.

    2. 서버를 선택하고 관리를 누릅니다.

    3. 수신 소켓 추가를 누릅니다. 수신 소켓 추가 페이지에서 다음을 수행합니다.

      1. 포트 번호를 지정합니다.

      2. 이 때 서버 이름으로 서버의 정규화된 도메인 이름(FQDN)이 지정되어야 합니다. 예를 들어 호스트 이름이 machine1이고 도메인 이름이 server.example.com이면 FQDN은 machine1.server.example.com이어야 합니다.

      3. 보안 드롭다운 목록에서 활성화를 선택합니다.

      4. 확인을 누릅니다.

    4. 수신 소켓 편집 페이지로 이동하여 앞서 만든 수신 소켓을 선택합니다.

    5. 수신 소켓 페이지에서 서버 인증서 이름이 단계 6에서 제공한 인증서 이름과 같은지 확인합니다.

ProcedureSun Java System Web Server 6.1에 사용할 DAS 인증서 내보내기 및 가져오기

  1. Application Server 9.1을 사용하는 경우 다음 명령을 실행하여 DAS 인증서를 내보냅니다.

    <appserver_install_dir>/lib/upgrade/pk12util -d <domain root>/config -o sjsas.p12-W
    <file password> -K <master password> -n s1as
    • GlassFish v2를 사용하는 경우에는 다음 명령을 사용하여 DAS 인증서를 내보내야 합니다.

      <JAVA_HOME>/bin/keytool -export -rfc -alias s1as -keystore
      <GLASSFISH_HOME>/domains/<DOMAIN_NAME>/config/keystore.jks-file s1as.rfc

      여기서 <GLASSFISH_HOME>은 Application Server 설치 디렉토리를 나타내며 <DOMAIN_NAME>은 내보내는 인증서가 있는 도메인을 가리킵니다.

    • 인증서 파일을 웹 서버 구성 디렉토리에 복사합니다.

  2. Application Server 9.1을 사용하는 경우에는 다음 명령을 사용하여 DAS 인증서를 Web Server 인스턴스로 가져옵니다.

    <webserver_install_dir>/bin/https/admin/bin/pk12util-i sjsas.p12 -d 
    <webserver_install_dir>/alias -W<file password> -K <webserver security db password> -P
    <instance-name>-<hostname>-
    <webserver_install_dir>/bin/https/admin/bin/certutil -M -n s1as -t "TCu"
    -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-

    이 명령은 Application Server CA를 클라이언트와 서버 인증서에 서명하는 신뢰할 수 있는 CA로 만듭니다.

    • GlassFish v2를 사용하는 경우에는 NSS 보안 도구 certutil을 사용하여 생성된 rfc 파일에서 DAS 인증서를 가져옵니다.

      <webserver_install_dir>/bin/certutil -A -a -n s1as -t "TCu" -i s1as.rfc 
      -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-

      다음 명령을 사용하여 이 인증서의 존재 여부를 확인할 수 있습니다. 이 명령은 기본 서버 인증서를 비롯한 다른 CA 인증서와 함께 s1as 인증서를 나열합니다. 명령은 한 줄로 입력해야 합니다.

      <WS_INSTALL_ROOT>/bin/certutil -L 
      -d <webserver_install_dir>/alias -P <instance-name>-<hostname>-
  3. obj.conf에 다음 줄이 포함되지 않은 경우 파일의 맨 뒤에 추가하십시오. Application Server 9.1을 사용하는 경우에는 설치 프로그램에서 이 단계를 자동으로 수행합니다.

    <Object ppath="*lbconfigupdate*">
    PathCheck fn="get-client-cert" dorequest="1" require="1"
    <Object>
    <Object ppath="*lbgetmonitordata*">
    PathCheck fn="get-client-cert" dorequest="1" require="1"
    </Object>
  4. 설정 확인 절에 설명된 절차를 사용하여 DAS에서 위의 설정을 확인할 수 있습니다. 로컬 CA를 사용하는 대신 다른 CA와 서버 인증서를 사용할 수 있습니다. 이러한 경우 이전 절에 나열된 단계 5와 6을 건너뛸 수 있지만 다른 CA에서 획득한 서버 인증서를 가져와야 합니다.

Web Server 7에 대해 SSL 모드에서 로드 밸런서 설정

  1. 다음 명령을 사용하여 Web Server의 Administration Server를 시작합니다.

    webserver-install-dir/admin_server/bin/startserv
  2. 다음 절차의 설명에 따라 HTTPS 수신기를 만듭니다. HTTP Listener가 이미 있는 경우에는 이 절차를 건너뛰고 Sun Java System Web Server 7에 사용할 DAS 인증서 내보내기 및 가져오기 절을 진행할 수 있습니다.

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

    2. 기본 구성을 선택합니다. 일반적으로 기본 구성 이름은 호스트 이름과 동일합니다. 일반 작업 페이지에서 이 작업을 수행하려면 구성 선택 목록에서 구성을 선택하고 구성 편집을 누릅니다. 또는 구성 페이지를 열고 구성 테이블에서 기본 구성 이름을 누릅니다.

    3. 일반 작업 페이지에서 작업할 경우 서버 인증서 요청을 누릅니다. 구성 페이지에서 작업할 경우에는 인증서 페이지를 열고 서버 인증서 테이블에서 요청 버튼을 누릅니다. 이 기본 구성에 대한 자체 서명 서버 인증서를 만들기 위해 이 작업이 필요합니다.

    4. 서버 인증서 요청 창에서 필요한 세부 정보를 제공합니다.

      이 때 "*서버 이름(cn)"으로 제공되는 값은 웹 서버가 설치된 시스템의 정규화된 이름(FQDN)이어야 합니다. 예를 들어 호스트 이름이 machine1이고 도메인 이름이 server.example.com이면 FQDN은 machine1.server.example.com이어야 합니다. 기본값이 있는 경우에는 모두 기본값을 선택합니다.

      다음 명령을 사용하여 자체 서명 인증서를 만드는 방법도 있습니다. 명령은 한 줄로 입력해야 합니다.

      webserver-install-dir/bin/wadm create-selfsigned-cert --user=
      admin-user --server-name=host-name 
      --nickname=ServerCert --token=internal --config=config-name
      
    5. 선택한 구성 페이지로 돌아갑니다.

    6. HTTP Listener 페이지를 열고 새로 만들기 버튼을 누릅니다. 그러면 SSL이 활성화된 HTTP Listener가 생성됩니다.

    7. 새 HTTP Listener 마법사에 필요한 세부 사항을 제공합니다. 서버 이름은 이전 단계에서 제공한 FQDN이어야 합니다. SSL 버튼을 선택하고 인증서 목록에서 이전에 만든 서버 인증서를 선택합니다. 예를 들면, cert-machine1.server.example.com과 같습니다.

      다음 명령을 사용하여 HTTP Listener를 만드는 방법도 있습니다. 각 명령은 한 줄로 입력해야 합니다.

      webserver-install-dir/bin/wadm create-http-listener 
      --user=admin-user --server-name=host-name 
      --default-virtual-server-name=default-virtual-server-name 
      --listener-port=8090 --config=config-name http-listener-ssl
      webserver-install-dir/bin/wadm set-ssl-prop 
      --user=admin-user --http-listener=http-listener-ssl 
      --config=config-name enabled=true server-cert-nickname=ServerCert
    8. 위의 절차를 수행하면 관리 콘솔 오른쪽 상단에 "보류 중인 배포"라는 경고가 나타납니다. 이를 클릭하고 지침에 따라 배포를 완료합니다. 이 단계는 웹 서버의 Administration Server에 대한 구성 저장소 변경 내용이 웹 서버 인스턴스로 복사되도록 합니다.

ProcedureSun Java System Web Server 7에 사용할 DAS 인증서 내보내기 및 가져오기

DAS 인증서를 내보내고 가져오는 방법으로 DAS를 Web Server의 신뢰할 수 있는 클라이언트로 만들 수 있습니다. DAS 인증서를 사용하는 클라이언트 인증은 DAS만 Web Server에 신뢰할 수 있는 클라이언트로서 연결하도록 합니다.

  1. 터미널 창을 열고 다음 명령을 사용하여 LD_LIBRARY_PATH를 설정합니다.

    export LD_LIBRARY_PATH=/opt/SUNWappserver/lib
  2. Application Server 9.1을 사용하는 경우 다음 명령을 실행하여 DAS 인증서를 내보냅니다. DAS 인증서는 클라이언트 인증서와 서버 인증서의 역할을 모두 담당합니다.

    <appserver_install_dir>/lib/upgrade/pk12util -d <domain root>/config -o s1as.p12 -W
    <s1as.pk12-file-password> -K <master password> -n s1as
    • GlassFish v2를 사용하는 경우에는 키 도구라는 Java SE 5.0 보안 도구를 사용하여 별칭 "s1as"라는 이름으로 DAS 인증서를 내보냅니다. 이 때 -rfc 옵션을 선택하여 인증서를 인터넷 RFC 1421 표준에 정의된 인쇄 가능한 인코딩 형식으로 내보냅니다.

      명령줄에서 다음 명령을 사용하여 DAS 인증서를 내보낼 수 있습니다.

      <JAVA_HOME>/bin/keytool -export -rfc -alias s1as -keystore
      <GLASSFISH_HOME>/domains/<DOMAIN_NAME>/config/keystore.jks-file s1as.rfc

      여기서 <GLASSFISH_HOME>은 Application Server 설치 디렉토리를 나타내며 <DOMAIN_NAME>은 내보내는 인증서가 있는 도메인을 가리킵니다.

    • 인증서 파일을 웹 서버 구성 디렉토리로 복사합니다.

  3. Application Server 9.1을 사용하는 경우에는 DAS 인증서를 Web Server 인스턴스로 가져온 후 다음 명령을 사용하여 인증서의 트러스트 속성을 설정합니다.

    <webserver_install_dir>/bin/pk12util -i <path_to_s1as.pk12-file> 
    -d <webserver_install_dir>/admin-server/config-store/<default-config-name>/config 
    -K <webserver security db password> -W <s1as.pk12-file-passwd>
    <webserver_install_dir>/bin/certutil -M -n s1as -t "TCu" 
    -d <webserver_install_dir>/admin-server/config-store/<default-config-name>/config

    이 명령은 Application Server CA를 클라이언트 인증서와 서버 인증서에 서명하는 신뢰할 수 있는 CA로 만듭니다.

    • GlassFish v2를 사용하는 경우에는 NSS 보안 도구 certutil을 사용하여 생성된 rfc 파일에서 DAS 인증서를 가져옵니다.

      <webserver_install_dir>/bin/certutil -A -a -n s1as -t "TCu" -i s1as.rfc -d
      <webserver_install_dir>/admin-server/config-store/<CONFIG_NAME>/config

      여기서 <webserver_install_dir>은 웹 서버 설치 디렉토리를 나타내며 <CONFIG_NAME>은 기본 웹 서버 인스턴스에 대해 생성된 구성 이름을 가리킵니다.

      다음 명령을 사용하여 이 인증서의 존재 여부를 확인할 수 있습니다. 이 명령은 기본 서버 인증서를 비롯한 다른 CA 인증서와 함께 s1as 인증서를 나열합니다. 전체 명령을 한 줄에 입력해야 합니다.

      <webserver_install_dir>/bin/certutil -L -d
      <webserver_install_dir>/admin-server/config-store/
      <DEFAULT_CONFIG_NAME>/config

      Web Server 관리 콘솔을 사용하여 확인할 수도 있습니다. 인증서를 가져온 구성(이 경우 기본 구성)을 선택한 다음 인증서 탭을 선택합니다. 사용 가능한 모든 인증서를 보기 위해 인증 기관 하위 탭을 선택합니다.

  4. GlassFish v2를 사용하는 경우 Web Server 7의 구성을 다음과 같이 변경합니다. Application Server 9.1을 사용하는 경우에는 다음 단계를 건너뛸 수 있습니다.

    1. <WS_INSTALL_ROOT>/admin-server/config-store/<DEFAULT_CONFIG_NAME>/config/에 있는 obj.conf 파일에 다음 줄을 추가합니다. 이 줄은 뒤에 공백이 삽입되지 않도록 입력해야 합니다.

       <Object ppath="*lbconfigupdate*">
       PathCheck fn="get-client-cert" dorequest="1" require="1"
      </Object>
      <Object ppath="*lbgetmonitordata*">
       PathCheck fn="get-client-cert" dorequest="1" require="1"
      </Object>
  5. 구성을 배포합니다. 이전 단계의 변경을 수행할 때 이 구성이 관리 콘솔에서 배포될 구성으로 표시됩니다.

    1. Web Server 관리 콘솔에서 보류 중인 배포 아이콘을 선택합니다. 다음과 같이 CLI 유틸리티 wadm을 사용하여 이 구성을 배포할 수도 있습니다.

      <webserver_install_dir>/bin/wadm deploy-config --user=<admin> <DEFAULT_CONFIG_NAME>
  6. GlassFish DAS에서 이 설정을 테스트하여, 구성된 HTTP 로드 밸런서와 SSL을 통해 통신하는지 확인합니다. 자세한 내용은 설정 확인을 참조하십시오.

Apache Web Server 사용

Application Server 9.1과 함께 제공되는 로드 밸런서 플러그인은 Apache Web Server 2.0.x를 지원합니다. Apache Web Server를 사용하려면 로드 밸런서 플러그인을 설치하기 전과 설치한 후에 특정 구성 절차를 수행해야 합니다. 로드 밸런서 플러그인을 설치하면 Apache Web Server가 다음과 같이 추가로 수정됩니다. 플러그인 설치 후에 추가 구성 단계를 수행해야 합니다.


주 –

--with-mpm=worker 옵션을 사용하여 컴파일할 경우 Apache 2에는 멀티스레드된 동작이 발생합니다.


Apache Web Server 사용 요구 사항

Apache Web Server의 경우 최소 설치 요구 사항을 충족해야 합니다.

Apache를 사용할 경우 로드 밸런서 플러그인에는 다음이 필요합니다.

소프트웨어 소스는 http://www.sunfreeware.com에서 구할 수 있습니다.

Apache를 컴파일하기 전에 다음을 수행합니다.


주 –

gcc 이외의 다른 C 컴파일러를 사용하려면 C 컴파일러의 경로를 설정하고 PATH 환경 변수에서 유틸리티를 작성합니다.


Apache Web Server 패치 적용

Apache용 로드 밸런서 플러그인을 설치하기 전에 Apache Web Server 문제 12355에 대한 패치를 적용하십시오. 이 문제에 대한 자세한 내용은 http://issues.apache.org/bugzilla/show_bug.cgi?id=12355에서 볼 수 있습니다. 자동 적용 기능이 작동하려면 이 패치가 필요합니다. 패치를 적용하려면 다음 단계를 수행합니다.

  1. http-2.0.59.tar의 압축을 풀고 httpd-2.0.59 디렉토리로 이동합니다.

  2. http://issues.apache.org/bugzilla/attachment.cgi?id=16495에서 패치를 다운로드하여 파일(예: 12355.diff)로 저장합니다.

  3. httpd-2.0.59/modules/ssl 디렉토리에서 다음 명령을 실행합니다.

    patch < 12355.diff

로드 밸런서 플러그인을 설치하기 전 Apache 구성

SSL과 함께 실행하려면 Apache 소스를 컴파일하고 빌드해야 합니다. 이 절에서는 로드 밸런서 플러그인을 실행할 수 있도록 Apache Web Server를 성공적으로 컴파일하는 데 필요한 최소 요구 사항 및 고급 단계를 설명합니다. 이러한 요구 사항 및 단계는 Solaris 및 Linux 버전의 소프트웨어에만 적용됩니다. Windows 버전의 Apache에 대한 자세한 내용은 Apache 웹 사이트를 참조하십시오.


주 –

여기에 포함된 지침은 http://httpd.apache.org/docs의 지침을 토대로 작성되었습니다. SSL 인식 Apache를 설치하는 방법에 대한 자세한 지침은 이 웹 사이트를 참조하십시오.


ProcedureSSL 인식 Apache 설치

시작하기 전에

이미 Apache 소프트웨어를 다운로드하고 압축을 풀어놓은 상태여야 합니다.

  1. http://openssl.org에서 제공되는 OpenSSL 소스를 다운로드하여 압축을 풉니다.

  2. OpenSSL을 컴파일하고 빌드합니다.

    전체 설치 지침은 OpenSSL의 압축을 푼 디렉토리에서 INSTALL이라는 파일을 참조하십시오. 이 파일에는 사용자가 지정한 위치에 OpenSSL을 설치하는 방법에 대한 정보가 있습니다.

    OpenSSL에 대한 자세한 내용은 http://www.openssl.org/를 참조하십시오.

  3. Apache를 다운로드하여 압축을 풉니다.

    Apache는 http://httpd.apache.org에서 제공됩니다.

  4. Apache를 컴파일하고 빌드합니다. 다음과 같이 소스 트리를 구성합니다.

    1. cd http-2.0_x

    2. 다음 명령을 실행합니다.

      ./configure --with-ssl= OpenSSL-install-path --prefix= Apache-install-path --enable-ssl --enable-so

      위의 명령에서 x는 Apache 버전 번호이고 open-ssl-install-path는 OpenSSL이 설치된 디렉토리의 절대 경로이며 Apache-install-path는 Apache를 설치할 디렉토리입니다.

      Apache 2 서버에서 HTTPS 요청을 수락하는 경우에는 --enable-ssl --enable-so 옵션만 사용하면 됩니다.

  5. Linux 2.1의 Apache의 경우 컴파일 전에 다음을 수행합니다.

    1. src/MakeFile 파일을 열고 자동으로 생성된 절의 종료 부분을 찾습니다.

    2. 자동으로 생성된 절의 첫 번째 네 줄 이후에 다음 줄을 추가합니다.

      LIBS+= -licuuc -licui18n -lnspr4 -lpthread -lxerces-c 
      -lsupport -lnsprwrap -lns-httpd40
      LDFLAGS+= -L/application-server-install-dir/lib -L/opt/sun/private/lib

      -L/opt/sun/private/lib는 Application Server를 Java Enterprise System 설치의 일부로 설치한 경우에만 필요합니다.

      예를 들면 다음과 같습니다.

      ## (자동으로 생성된 섹션의 끝)
      ## 
      CFLAGS=$(OPTIM) $(CFLAGS1) $(EXTRA_CFLAGS)
      LIBS=$(EXTRA_LIBS) $(LIBS1)
      INCLUDES=$(INCLUDES1) $(INCLUDES0) $(EXTRA_INCLUDES)
      LDFLAGS=$(LDFLAGS1) $(EXTRA_LDFLAGS)
      "LIBS+= -licuuc -licui18n -lnspr4 -lpthread 
      -lxerces-c -lsupport -lnsprwrap -lns-httpd40
      LDFLAGS+= -L/application-server-install-dir /lib -L/opt/sun/private/lib
    3. 환경 변수 LD_LIBRARY_PATH를 설정합니다.

      독립 실행형 설치에서는 Application Server: as-install/lib로 설정합니다.

      Java Enterprise System 설치에서는 이 환경 변수를 Application Server: as-install/lib:opt/sun/private/lib로 설정합니다.

      Solaris 9를 사용하는 경우에는 LD_LIBRARY_PATH/usr/local/lib를 추가합니다.

  6. Apache를 사용 중인 버전 설치 지침에 따라 컴파일합니다.

    자세한 내용은 http://httpd.apache.org/를 참조하십시오.

    일반적으로 단계는 다음과 같습니다.

    1. make

    2. make install

  7. Apache의 ssl.confhttpd.conf 파일에 사용자의 환경에 맞는 올바른 값이 포함되어 있는지 확인합니다.

    • ssl.confVirtualHostdefault:port에서 기본 호스트 이름과 포트를 Apache가 설치되는 로컬 시스템의 호스트 이름 및 서버의 포트 번호로 바꿉니다.

      이 변경을 수행하지 않으면 로드 밸런서가 작동하지 않습니다. Solaris의 경우 Apache가 시작되지 않거나 Linux의 경우 HTTPS 요청이 작동하지 않을 수 있습니다.

    • ssl.confServerName www.example.com:443에서 www.example.com을 Apache가 설치되는 로컬 시스템의 호스트 이름으로 바꿉니다.

      이 변경을 수행하지 않으면 보안 인증서가 설치된 경우 Apache를 시작할 때 다음 경고가 나타납니다.


      [warn] RSA server certificate CommonName (CN) 
      hostname does NOT match server name!

      Apache용 인증서를 설치하는 방법에 대한 자세한 내용은 Apache용 보안 인증서 만들기 를 참조하십시오.

    • httpd.confServerName www.example.com:80에서 www.example.com을 Apache가 설치되는 로컬 시스템의 호스트 이름으로 바꿉니다.

      이 변경을 수행하지 않으면 시스템에서 서버의 정규화된 도메인을 이름을 확인하지 못하고 중복된 VirtualHost 항목이 있을 경우 Apache를 시작하면 경고가 표시됩니다.

  8. Apache 사용자에게 apache-install-location/conf/ 디렉토리 및 이 디렉토리의 파일에 액세스하기 위해 필요한 권한이 있는지 확인합니다.

    Apache 사용자는 Apache 서버에서 요청에 응답할 때 사용된 UNIX 사용자입니다. 이 사용자는 httpd.conf 파일에서 정의합니다.

    Apache를 루트 사용자로 설치한 경우 apache-install-location/conf/httpd.conf에서 Apache 사용자 및 그룹 구성에 대한 정보를 확인하십시오.


    주 –

    사용자와 그룹의 구성이 이 디렉토리의 보안 요구 사항을 충족하는지 확인합니다. 예를 들어 이 디렉토리에 대한 액세스를 제한하려면 Apache 사용자를 디렉토리 소유자와 동일한 사용자 그룹에 추가합니다.


    1. 자동 적용 기능이 올바르게 작동하게 하려면 Apache 사용자에게 apache-install-location/conf/ 디렉토리에 대한 읽기 액세스, 쓰기 액세스 및 실행 액세스 권한을 부여합니다.

      • Apache 사용자가 이 디렉토리 소유자와 같은 그룹에 있는 경우에는 모드를 775로 변경합니다.

      • Apache 사용자가 이 디렉토리 소유자와 다른 그룹에 있는 경우에는 모드를 777로 변경합니다.

    2. Apache를 시작할 때 로드 밸런서 플러그인이 초기화되도록 하려면 다음 파일에 Apache 사용자 읽기 액세스 및 쓰기 액세스를 부여합니다.

      • apache-install-location/conf/loadbalancer.xml

      • apache-install-location/conf/sun-loadbalancer_1_2.dtd

DAS 인증서 내보내기 및 가져오기

다음 명령을 사용하여 DAS 인증서를 수동으로 내보내야 합니다.

appserver-install-dir/lib/upgrade/certutil -L -d appserver-instance-dir/config -n s1as -a -o sjsas.crt

이 인증서는 로드 밸런서 플러그인을 설치할 때 필요합니다.

Application Server 9.1 설치 프로그램에서 자동으로 다음 작업을 수행합니다.

로드 밸런서 플러그인 설치 프로그램에서 수정한 사항

로드 밸런서 플러그인 설치 프로그램은 필요한 파일을 웹 서버 루트 디렉토리의 modules 디렉토리로 추출합니다.

웹 서버 인스턴스의 httpd.conf 파일에 다음 항목을 추가합니다.

##BEGIN EE LB Plugin Parameters
LoadModule apachelbplugin_module modules/mod_loadbalancer.so
#AddModule mod_apachelbplugin.cpp
<IfModule mod_apachelbplugin.cpp> 
  config-file webserver-instance/httpd/conf/loadbalancer.xml
  locale en
</IfModule>
<VirtualHost machine-ip-address>
  DocumentRoot "webserver-instance/httpd/htdocs"
  ServerName server-name
</VirtualHost>
##END EE LB Plugin Parameters

로드 밸런서 플러그인을 설치한 후 Apache 구성

Apache Web Server에서는 로드 밸런서 플러그인이 작동하려면 올바른 보안 파일이 있어야 합니다. 로드 밸런서는 이러한 보안 데이터베이스 파일이 필요한 NSS(Network Security Service) 라이브러리에 의존합니다. Web Server에서 액세스할 수 있는 위치에서 Application Server 설치를 사용할 수 있도록 Application Server에서 이러한 보안 데이터베이스 파일을 가져와야 합니다.

Apache 보안 파일이 로드 밸런서와 함께 작동하도록 구성하려면 다음을 수행합니다.

Apache-install-dir/bin/apachectl 스크립트의 LD_LIBRARY_PATH/usr/lib/mps를 추가합니다.

ProcedureApache용 보안 인증서 만들기

Apache에서 HTTPS 요청을 지원하려면 다음 단계가 필요합니다.

Apache에서 보안 인증서를 설정하는 방법에 대한 자세한 내용은 http://httpd.apache.org/docs/2.2/ssl/ssl_faq.htmlhttp://www.modssl.org/docs/2.8/ssl_faq.html의 지침을 참조하십시오. 다음 절차는 이러한 웹 사이트에서 제공되었습니다.

  1. 다음 환경 변수를 설정합니다.

    OPENSSL_CONF=OpenSSL-installation-directory /apps/openssl.cnf

  2. 다음 명령을 실행하여 서버 인증서 및 키를 만듭니다.

    openssl req -new -x509 -keyout newreq.pem -out newreq.pem -days 365

    일반 이름을 묻는 메시지가 나타나면 Apache를 실행할 호스트 이름을 제공합니다. 다른 모든 프롬프트에 대해서는 사용자의 특정 요구 사항에 맞는 값을 입력합니다.

    이 명령은 newreq.pem을 만듭니다.

  3. openssl 명령이 실행된 위치에서 새로 만든 newreq.pem을 엽니다.

  4. BEGIN CERTIFICATE로 시작하고 END CERTIFICATE로 끝나는 줄을 복사하여 Apache-install-dir/conf/ssl.crt/server.crt에 붙여넣습니다. 예를 들면 다음과 같습니다.


    -----BEGIN CERTIFICATE-----
    ....
    ...
    -----END CERTIFICATE-----
  5. BEGIN RSA PRIVATE KEY로 시작하고 END RSA PRIVATE KEY로 끝나는 줄을 복사하여 Apache-install-dir/conf/ssl.key/server.key에 붙여넣습니다. 예를 들면 다음과 같습니다.


    -----BEGIN RSA PRIVATE KEY-----
    ...
    ...
    ...
    -----END RSA PRIVATE KEY-----
  6. Apache-install-dir/conf/ssl.confSSLCertificateKeyFileSSLCertificateFile 변수에 올바른 값이 있는지 확인합니다.

  7. ServerName이 www.example.com이 아닌지 확인합니다. ServerName은 서버 인증서와 키를 만들 때 입력했던 일반 이름과 일치하는 Apache가 실행될 실제 호스트 이름이어야 합니다.

httpd.conf 매개 변수를 수정하여 고정 라운드 로빈 활성화

고정 라운드 로빈 기능이 작동하게 하려면 httpd.conf 파일의 prefork MPM 섹션 아래에서 매개 변수 StartServersmaxclients의 값이 1로 설정되어 있는지 확인합니다. 그렇지 않으면 새 세션 요청마다 Apache 프로세스가 새로 만들어지고 로드 밸런서 플러그인이 초기화되어 요청이 같은 인스턴스에 수신됩니다.

Solaris 및 Linux에서 Apache 시작

일반적으로 Application Server를 설치한 동일한 사용자로 Apache를 시작해야 합니다. 다음과 같은 상황에서는 루트로 Apache를 시작해야 합니다.

SSL 모드에서 Apache를 시작하려면 다음 명령 중 하나를 사용합니다.

apachetl startssl 또는 apachetl -k start -DSSL

필요한 경우 Apache 웹 사이트에서 Apache 서버를 시작하는 방법에 대한 최신 정보를 확인합니다.

설정 확인

  1. 로드 밸런서 플러그인을 설치합니다. 플러그인을 설치하는 자세한 단계는 Sun Java System Application Server 9.1 Installation Guide를 참조하십시오. 설치 과정에서 DAS 인증서의 경로를 제공합니다.

  2. Application Server 관리 콘솔에 로그인하여 새 클러스터를 만듭니다. 새 클러스터를 만드는 단계는 관리 콘솔 온라인 도움말을 참조하십시오.

  3. 새 HTTP 로드 밸런서를 만듭니다. 로드 밸런서를 만들 때 웹 서버 호스트의 FQDN을 장치 호스트 이름으로, 웹 서버 SSL 포트를 장치 포트로 지정하고 이전 단계에서 만든 클러스터를 대상으로 선택합니다. 새 HTTP 로드 밸런서를 만드는 자세한 단계는 관리 콘솔 온라인 도움말을 참조하십시오.

  4. DAS와 웹 서버 간에 통신이 제대로 작동하는지 확인하려면 관리 콘솔에서 HTTP 로드 밸런서로 이동하고 HTTP 로드 밸런서를 누릅니다. 로드 밸런서 장치 설정 페이지가 나타나면 테스트 연결 버튼을 누릅니다.

    로드 밸런서를 만들 때 변경 사항 자동 적용 옵션을 활성화하지 않은 경우에는 내보내기 탭에서 지금 변경 사항 적용을 눌러 로드 밸런서 구성을 수동으로 내보내야 합니다.

  5. 테스트 연결에 실패한 경우에는 Application Server 도메인 로그와 웹 서버 로그를 확인하여 문제를 해결합니다. 모든 구성 단계를 올바르게 수행했는지 여부도 확인합니다.

Microsoft IIS 사용

Microsoft IIS(인터넷 정보 서비스)를 로드 밸런서 플러그인과 함께 사용하려면 이 절에 설명된 절차를 수행하십시오.

Procedure로드 밸런서 플러그인을 사용하도록 Microsoft IIS 구성

  1. 인터넷 서비스 관리자를 엽니다.

  2. 플러그인을 사용할 웹 사이트를 선택합니다.

    이 웹 사이트는 일반적으로 기본 웹 사이트로 명명됩니다.

  3. 웹 사이트를 마우스 오른쪽 버튼으로 누른 다음 등록 정보를 선택하여 등록 정보 노트북을 엽니다.

  4. 다음 단계에 따라 새 ISAPI 필터를 추가합니다.

    1. ISAPI 필터 탭을 엽니다.

    2. 추가를 누릅니다.

    3. 필터 이름 필드에 Application Server를 입력합니다.

    4. 실행 파일 필드에 C:\Inetpub\wwwroot\sun-passthrough\sun-passthrough.dll을 입력합니다.

    5. 확인을 누르고 등록 정보 노트북을 닫습니다.

  5. 새로운 가상 디렉토리를 작성하고 구성합니다.

    1. 기본 웹 사이트를 마우스 오른쪽 버튼으로 누른 다음 가상 디렉토리를 선택합니다.

      가상 디렉토리 작성 마법사가 열립니다.

    2. 별칭 필드에 sun-passthrough를 입력합니다.

    3. 디렉토리 필드에 C:\Inetpub\wwwroot\sun-passthrough를 입력합니다.

    4. 실행 권한 확인란을 선택합니다.

      다른 모든 권한 관련 확인란은 선택 해제한 채로 둡니다.

    5. 마침을 누릅니다.

  6. sun-passthrough.dll 파일, Application Server as-install/bin 및 Application Server as-install/lib 경로를 시스템의 PATH 환경 변수에 추가합니다.

  7. IIS 6.0 사용자의 경우 다음 단계를 수행하여 IIS 6에서 실행되도록 로드 밸런서 웹 서비스 확장을 구성합니다.

    1. IIS 관리자에서 로컬 컴퓨터를 확장하고 웹 서비스 확장을 누릅니다.

    2. 작업 창에서 새 웹 서비스 확장 추가를 선택합니다.

    3. 확장 이름으로 Sun-Passthrough를 입력하고 추가를 누릅니다.

    4. sun-passthrough.dll의 경로인 C:\Inetpub\wwwroot\sun-passthrough를 입력합니다.

    5. 확인을 누릅니다.

    6. 확장 상태를 허용됨으로 설정을 선택합니다.

  8. IIS 6.0 사용자의 경우 C:\inetput\wwwroot\sun-passthrough\lb.log 파일을 만들고 NTFS 쓰기 및 수정 권한을 이 파일의 IIS_WPG 그룹에 제공합니다.

    IIS 6.0은 작업자 프로세스 격리 모드에서 실행되기 때문에 IIS_WPG 그룹의 보안 권한과 함께 IIS 서버를 실행합니다.

  9. 모든 IIS 사용자는 시스템을 다시 시작합니다.

  10. 웹 서버, 로드 밸런서 플러그인 및 Application Server가 제대로 작동하는지 확인합니다.

    웹 브라우저에 다음 사항을 입력하여 웹 응용 프로그램 컨텍스트 루트에 액세스합니다. http://web-server-name/web-application. 여기서 web-server-name은 웹 서버의 호스트 이름 또는 IP 주소이고 web-applicationC:\Inetpub\wwwroot\sun-passthrough\sun-passthrough.properties 파일에 나열한 컨텍스트 루트입니다.


    정보 –

    ISAPI 필터 상태가 녹색이어야 합니다. 필터 상태를 확인하려면 웹 사이트의 등록 정보 노트북에 액세스하여 ISAPI 필터 탭을 누릅니다. 상태가 녹색이 아닌 경우 임의의 HTTP 요청을 IIS HTTP 포트에 보내 봅니다. 요청이 실패하면 정상입니다. ISAPI 필터 상태를 다시 확인합니다.


자동으로 구성된 sun-passthrough 등록 정보

설치 프로그램은 sun-passthrough.properties에서 다음 등록 정보를 자동으로 구성합니다. 기본값을 변경할 수 있습니다.

등록 정보 

정의 

기본값 

lb-config-file

로드 밸런서 구성 파일 경로 

IIS-www-root\sun-passthrough\loadbalancer.xml

log-file

로드 밸런서 로그 파일 경로 

IIS-www-root\sun-passthrough\lb.log

log-level

웹 서버의 로그 수준 

INFO 


주 –

Application Server 9.1의 자동 적용 기능은 현재 IIS에서 지원되지 않습니다.