Apache Web Server를 사용하려면 로드 밸런서 플러그인을 설치하기 전에 특정 구성 단계를 수행해야 합니다. 로드 밸런서 플러그인을 설치하면 Apache Web Server가 다음과 같이 추가로 수정됩니다. 플러그인 설치 후에 추가 구성 단계를 수행해야 합니다.
Apache 1.3의 경우 여러 Apache 하위 프로세스를 실행할 경우 프로세스마다 고유한 로드 균형 조정 라운드 로빈 시퀀스가 있습니다. 예를 들어, 두 개의 Apache 하위 프로세스가 실행되는 중이고 로드 밸런서 플러그인이 두 개의 Application Server 인스턴스에 대해 로드 균형 조정을 할 경우 첫 번째 요청을 인스턴스 #1로 보내고 두 번째 요청도 인스턴스 #1로 보냅니다. 세 번째 요청을 인스턴스 #2로 보내고 네 번째 요청도 다시 인스턴스 #2로 보냅니다. 이 패턴이 반복됩니다(instance1, instance1, instance2, instance2 등). 이 동작은 예상되는 instance1, instance2, instance1, instance2 등의 패턴과는 다릅니다. Sun Java System Application Server에서 Apache용 로드 밸런서 플러그인은 각 Apache 프로세스에 대해 로드 밸런서 인스턴스를 인스턴스화하여 독립적인 로드 균형 조정 시퀀스를 만듭니다.
--with-mpm=worker 옵션을 사용하여 컴파일할 경우 Apache 2에는 멀티스레드된 동작이 발생합니다.
Apache Web Server의 경우 Apache 버전에 따라 설치된 프로그램은 다음의 최소 요구 사항을 만족해야 합니다.
Apache 1.3을 사용할 경우 로드 밸런서 플러그인에는 다음이 필요합니다.
openssl-0.9.8b(소스)
mod_ssl-2.8.n-1.3.x(소스). 여기서 n은 사용자의 Apache 버전에 대한 올바른 버전의 mod_ssl을 나타내고 x는 Apache 버전을 나타냅니다.
gcc-3.3-sol9-sparc-local 패키지(Solaris 9 SPARC용)
gcc-3.3-sol9-intel-local 패키지(Solaris 9 x86용)
사전 설치된 gcc(Solaris 10용)
flex-2.5.4a-sol9-sparc-local 패키지(Solaris 9 SPARC용)
flex-2.5.4a-sol9-intel-local 패키지(Solaris 9 x86용)
사전 설치된 flex(Solaris 10용)
소프트웨어 소스는 http://www.sunfreeware.com에서 구할 수 있습니다.
사용자의 Apache 버전과 함께 사용할 올바른 버전의 mod_ssl을 비롯한 mod_ssl에 대한 자세한 내용은 http://www.modssl.org를 참조하십시오.
Apache를 컴파일하기 전에 다음을 수행합니다.
Linux 2.1 플랫폼에서 동일한 시스템에 Sun Java System Application Server를 설치합니다.
Solaris 9 운영 체제에서 pkgadd를 사용하여 gcc 및 flex를 설치합니다. pkgadd에는 루트 액세스 권한이 필요합니다.
Solaris 9 운영 체제에서 gcc 버전 3.3 및 make가 PATH에 있고 flex가 설치되어 있는지 확인합니다.
Solaris 10 운영 체제의 Java Enterprise System 설치에서 OpenSSL용 make를 실행하기 전에 Solaris SPARC의 경우 /usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3/install-tools, Solaris x86의 경우 /usr/local/lib/gcc-lib/i386-pc-solaris2.9/3.3/install-tools에 있는 mkheaders를 실행합니다.
Red Hat Enterprise Linux Advanced Server 2.1에서 gcc를 사용할 경우 gcc 3.0 이후 버전이어야 합니다.
gcc 이외의 다른 C 컴파일러를 사용하려면 C 컴파일러의 경로를 설정하고 PATH 환경 변수에서 유틸리티를 작성합니다. 예를 들어, sh 쉘을 사용할 경우 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:application-server-install-dir /lib를 사용합니다.
Apache 2를 사용할 경우 로드 밸런서 플러그인에는 다음이 필요합니다.
openssl-0.9.8b(소스)
httpd-2.0.49(소스)
gcc-3.3-sol9-sparc-local 패키지(Solaris 9 SPARC용)
gcc-3.3-sol9-intel-local 패키지(Solaris 9 x86용)
사전 설치된 gcc(Solaris 10용)
flex-2.5.4a-sol9-sparc-local 패키지(Solaris 9 SPARC용)
flex-2.5.4a-sol9-intel-local 패키지(Solaris 9 x86용)
사전 설치된 flex(Solaris 10용)
소프트웨어 소스는 http://www.sunfreeware.com에서 구할 수 있습니다.
Apache를 컴파일하기 전에 다음을 수행합니다.
Linux 플랫폼에서 동일한 시스템에 Sun Java System Application Server를 설치합니다.
Solaris 9 운영 체제에서 pkgadd를 사용하여 gcc 및 flex를 설치합니다. pkgadd에는 루트 액세스 권한이 필요합니다.
Solaris 9 운영 체제에서 gcc 버전 3.3 및 make가 PATH에 있고 flex가 설치되어 있는지 확인합니다.
Solaris 10 운영 체제에서 OpenSSL용 make를 실행하기 전에 Solaris SPARC의 경우 /usr/local/lib/gcc-lib/sparc-sun-solaris2.9/3.3/install-tools, Solaris x86의 경우 /usr/local/lib/gcc-lib/i386-pc-solaris2.9/3.3/install-tools에 있는 mkheaders를 실행합니다.
Red Hat Enterprise Linux Advanced Server 2.1에서 gcc를 사용할 경우 gcc 3.0 이후 버전이어야 합니다.
gcc 이외의 다른 C 컴파일러를 사용하려면 C 컴파일러의 경로를 설정하고 PATH 환경 변수에서 유틸리티를 작성합니다.
Apache용 로드 밸런서 플러그인을 설치하기 전에 Apache Web Server를 설치합니다. Apache 소스를 컴파일하고 SSL과 함께 실행되도록 빌드해야 합니다. 이 절에서는 로드 밸런서 플러그인을 실행하도록 Apache Web Server를 성공적으로 컴파일하는 데 필요한 최소 요구 사항 및 고급 단계를 설명합니다. 이러한 요구 사항 및 단계는 Solaris 및 Linux 버전의 소프트웨어에만 적용됩니다. Windows 버전의 Apache에 대한 자세한 내용은 Apache 웹 사이트를 참조하십시오.
여기에 포함된 지침은 http://httpd.apache.org/docs의 지침을 토대로 작성되었습니다. SSL 인식 Apache를 설치하는 방법에 대한 자세한 지침은 이 웹 사이트를 참조하십시오.
Apache 소프트웨어를 미리 다운로드하여 압축을 풀어야 합니다.
http://openssl.org에서 제공되는 OpenSSL 소스를 다운로드하여 압축을 풉니다.
OpenSSL을 컴파일하고 빌드합니다.
OpenSSL 0.9.7.e가 설치된 경우 Lunux 3.0 플랫폼에서는 이 단계가 필요하지 않습니다. Linux 4.0에서는 이 이 단계가 필요합니다.
전체 설치 지침은 OpenSSL의 압축을 푼 디렉토리에서 INSTALL이라는 파일을 참조하십시오. 이 파일에는 사용자가 지정한 위치에 OpenSSL을 설치하는 방법에 대한 정보가 있습니다.
OpenSSL에 대한 자세한 내용은 http://www.openssl.org/를 참조하십시오.
Apache를 다운로드하여 압축을 풉니다.
Apache는 http://httpd.apache.org에서 제공됩니다.
Apache를 컴파일하고 빌드합니다.
Apache 버전에 따라 다음 절차 중 하나를 수행하십시오.
Apache 1.3에서 다음 단계를 수행하여 mod_ssl을 사용하여 Apache를 구성합니다.
mod_ssl 소스의 압축을 풉니다.
다음을 입력합니다.
cd mod_ssl-2.8.n–1.3.x
다음을 입력합니다.
./configure –with-apache=../apache_1.3.x --with-ssl=../openssl-0.9.8b --prefix=Apache-install-path --enable-module=ssl --enable-shared=ssl --enable-rule=SHARED_CORE --enable-module=so
위의 명령에서 n은 사용자의 Apache 버전과 함께 사용할 올바른 버전의 mod_ssl이고 x는 Apache 버전 번호이고 Apache-install-path는 Apache를 설치할 디렉토리입니다.
사용자의 Apache 버전과 함께 사용할 올바른 버전의 mod_ssl을 비롯한 mod_ssl에 대한 자세한 내용은 http://www.modssl.org를 참조하십시오.
Apache 2의 경우 다음과 같이 소스 트리를 구성합니다.
cd http-2.0_x.
다음 명령을 실행합니다.
./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 옵션만 사용하면 됩니다.
Apache 2의 경우 Apache의 ssl.conf 및 httpd.conf 파일에 사용자의 환경에 맞는 올바른 값이 포함되어 있는지 확인합니다.
ssl.conf의 VirtualHost default:port에서 기본 호스트 이름과 포트를 Apache 2가 설치되는 로컬 시스템의 호스트 이름 및 서버의 포트 번호로 바꿉니다.
이 변경을 수행하지 않으면 로드 밸런서가 작동하지 않습니다. Solaris의 경우 Apache가 시작되지 않거나 Linux의 경우 HTTPS 요청이 작동하지 않을 수 있습니다.
ssl.conf의 ServerName www.example.com:443에서 www.example.com을 Apache 2가 설치되는 로컬 시스템의 호스트 이름으로 바꿉니다.
이 변경을 수행하지 않으면 보안 인증서가 설치된 경우 Apache를 시작할 때 다음 경고가 나타납니다.
[warn] RSA server certificate CommonName (CN) hostname does NOT match server name! |
Apache 2용 인증서를 설치하는 방법에 대한 자세한 내용은 Apache 2용 보안 인증서 만들기를 참조하십시오.
httpd.conf의 ServerName www.example.com:80에서 www.example.com을 Apache 2가 설치되는 로컬 시스템의 호스트 이름으로 바꿉니다.
이 변경을 수행하지 않으면 시스템에서 서버의 정규화된 도메인을 이름을 확인하지 못하고 중복된 VirtualHost 항목이 있을 경우 Apache를 시작하면 경고가 표시됩니다.
|
Apache를 루트 사용자로 설치한 경우 apache-install-location/conf/httpd.conf에서 사용자 및 그룹을 구성하는 방법에 대한 정보를 숙지해야 합니다. Apache는 httpd.conf에 설명된 사용자로 실행됩니다. Apache가 시작될 때 로드 밸런서 플러그인이 초기화되도록 하려면 loadbalancer.xml 파일 및 sun-loadbalancer_1_1.dtd 파일(apache-install-location/conf에 있음)에 이 사용자와 일치하는 파일 사용 권한이 있어야 합니다.
Linux 2.1의 Apache의 경우 컴파일 전에 다음을 수행합니다.
src/MakeFile을 열고 자동으로 생성된 섹션 맨 끝을 찾습니다.
자동으로 생성된 섹션 다음에 나오는 처음 네 줄 뒤에 다음 줄을 추가합니다.
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
환경 변수 LD_LIBRARY_PATH를 설정합니다.
독립 실행형 설치에서는 이 환경 변수를 Application Server: install-dir/lib로 설정합니다.
Java Enterprise System 설치에서는 이 환경 변수를 Application Server: install-dir/lib:opt/sun/private/lib로 설정합니다.
Solaris 9를 사용하는 경우에는 LD_LIBRARY_PATH에 /usr/local/lib를 추가합니다.
사용 중인 버전에 대한 설치 지침에 설명된 대로 Apache를 컴파일합니다.
자세한 내용은 http://httpd.apache.org/를 참조하십시오.
일반적으로 단계는 다음과 같습니다.
make certificate 명령은 비밀번호를 요청합니다. Apache의 안전한 시작을 위해 이 비밀번호가 필요하므로 기억하는 것이 좋습니다.
로드 밸런서 플러그인 설치 프로그램은 필요한 파일을 웹 서버의 루트 디렉토리에 있는 디렉토리에 추출합니다.
Apache 1.3에서 이 디렉토리는 libexec입니다.
Apache 2에서 이 디렉토리는 modules입니다.
웹 서버 인스턴스의 httpd.conf 파일에 다음 항목을 추가합니다.
<VirtualHost machine-name:443> ##Addition for EE lb-plugin LoadFile /usr/lib/libCstd.so.1 LoadModule apachelbplugin_module libexec/mod_loadbalancer.so #AddModule mod_apachelbplugin.cpp <IfModule mod_apachelbplugin.cpp> config-file webserver-instance/conf/loadbalancer.xml locale en </IfModule><VirtualHost machine-ip-address> DocumentRoot "webserver-instance/htdocs" ServerName server-name </VirtualHost> ##END EE LB Plugin ParametersVersion 7
Apache 2의 경우 모듈은 mod_apache2lbpblugin.cpp입니다.
Apache Web Server에서는 로드 밸런서 플러그인이 작동하려면 올바른 보안 파일이 있어야 합니다. 로드 밸런서는 이러한 보안 데이터베이스 파일이 필요한 NSS(Network Security Service) 라이브러리에 의존합니다. 웹 서버에서 액세스할 수 있는 위치에서 Application Server 설치를 사용할 수 있도록 Application Server에서 이러한 보안 데이터베이스 파일을 가져와야 합니다.
Apache-install-dir 아래에 sec_db_files라는 디렉토리를 만듭니다.
Application Server의 보안 데이터베이스 파일을 만든 디렉토리에 복사합니다.
domain-dir/config/*.db를 Apache-install-dir/sec_db_files에 복사합니다.
플랫폼에 따라 추가 구성을 수행합니다.
Solaris 플랫폼의 Java Enterprise System 설치인 경우:
/usr/lib/mps/secv1 경로를 Apache-install-dir/bin/apachectl 스크립트의 LD_LIBRARY_PATH에 추가합니다. 이 경로는 /usr/lib/mps 앞에 추가해야 합니다.
Linux 플랫폼의 Java Enterprise System 설치인 경우:
/opt/sun/private/lib 경로를 Apache-install-dir/bin/apachectl 스크립트의 LD_LIBRARY_PATH에 추가합니다. 이 경로는 /usr/lib 앞에 추가해야 합니다.
Microsoft Windows:
Apache에서 HTTPS 요청을 지원하려면 다음 단계가 필요합니다.
Apache에서 보안 인증서를 설정하는 방법에 대한 자세한 내용은 http://http.apache.org/docs/2.2/ssl/ssl_faq.html 및 http://www.modssl.org/docs/2.8/ssl_faq.html의 지침을 참조하십시오. 다음 절차는 이러한 웹 사이트에서 제공되었습니다.
해당 OpenSSL 디렉토리로 이동합니다.
Solaris 10을 사용하는 경우인증서 만들기를 위해 사전 설치된 OpenSSL을 사용합니다. cd /usr/sfw/bin
Solaris 9 또는 Linux를 사용하는 경우 OpenSSL이 설치된 디렉토리로 이동합니다. SSL 인식 Apache 설치에 설명된 대로 OpenSSL에 대해 configure 및 make가 이미 실행되었어야 합니다.
환경 변수 OPENSSL_CONF=OpenSSL-installation-directory/apps/openssl.cnf를 설정합니다.
다음 명령을 실행하여 서버 인증서 및 키를 만듭니다.
openssl req -new -x509 -keyout newreq.pem -out newreq.pem -days 365
일반 이름을 묻는 메시지가 나타나면 Apache를 실행할 호스트 이름을 제공합니다. 다른 모든 프롬프트에 대해서는 사용자의 특정 요구 사항에 맞는 값을 입력합니다.
이 명령은 newreq.pem을 만듭니다.
openssl 명령이 실행된 위치에서 새로 만든 newreq.pem을 엽니다.
BEGIN CERTIFICATE로 시작하고 END CERTIFICATE로 끝나는 줄을 복사하여 Apache-install-dir/conf/ssl.crt/server.crt에 붙여넣습니다. 예를 들면 다음과 같습니다.
-----BEGIN CERTIFICATE----- .... ... -----END CERTIFICATE----- |
BEGIN RSA PRIVATE KEY로 시작하고 END RSA PRIVATE KEY로 끝나는 줄을 복사하여 Apache-install-dir/conf/ssl.key/server.key에 붙여넣습니다. 예를 들면 다음과 같습니다.
-----BEGIN RSA PRIVATE KEY----- ... ... ... -----END RSA PRIVATE KEY----- |
Apache-install-dir/conf/ssl.conf의 SSLCertificateKeyFile 및 SSLCertificateFile 변수에 올바른 값이 있는지 확인합니다.
ServerName이 www.example.com이 아닌지 확인합니다. ServerName은 서버 인증서와 키를 만들 때 입력했던 일반 이름과 일치하는 Apache가 실행될 실제 호스트 이름이어야 합니다.
일반적으로 Application Server를 설치한 동일한 사용자로 Apache를 시작해야 합니다. 다음과 같은 상황에서는 루트로 Apache를 시작해야 합니다.
Java Enterprise System 사용자인 경우
1024보다 작은 포트 번호를 사용한 경우
Apache를 시작한 사용자와 다른 사용자로 Apache가 실행되는 경우
SSL 모드에서 Apache를 시작하려면 다음 명령 중 하나를 사용합니다.
apachetl startssl 또는 apachetl -k start -DSSL
필요한 경우 Apache 웹 사이트에서 Apache 서버를 시작하는 방법에 대한 최신 정보를 확인합니다.