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

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 도메인 로그와 웹 서버 로그를 확인하여 문제를 해결합니다. 모든 구성 단계를 올바르게 수행했는지 여부도 확인합니다.