서버 설정 · 6 min read · Oct 23, 2025
간단한 Apache 2 Tomcat 5 mod_jk 통합
간단한 Apache 2 Tomcat 5 mod_jk 통합
이 튜토리얼은 여러 튜토리얼을 기반으로 하지만, 가상 호스트 없이 매우 간단한 버전을 만들었습니다. 이것은 DEBIAN 3.1에서만 테스트되었습니다!!!! 다른 배포판에서는 작동하지 않을 수 있습니다…
주요 정보 출처는 여기에서 찾을 수 있습니다:
https://www.howtoforge.com/apache2_tomcat5_mod_jk
Apache2 설치
이 링크를 따랐습니다: https://www.howtoforge.com/perfect_setup_debian_sarge_p5
실행
apt-get install apache2 apache2-doc
apt-get install libapache2-mod-php4 libapache2-mod-perl2 php4 php4-cli php4-common php4-curl php4-dev php4-domxml php4-gd php4-imap php4-ldap php4-mcal php4-mhash php4-mysql php4-odbc php4-pear php4-xslt curl libwww-perl imagemagick/etc/apache2/apache2.conf를 편집합니다. 변경
| DirectoryIndex index.html index.cgi index.pl index.php index.xhtml |
으로
| DirectoryIndex index.html index.htm index.shtml index.cgi index.php index.php3 index.pl index.xhtml |
/etc/mime.types를 편집하고 다음 줄을 주석 처리합니다:
| #application/x-httpd-php phtml pht php #application/x-httpd-php-source phps #application/x-httpd-php3 php3 #application/x-httpd-php3-preprocessed php3p #application/x-httpd-php4 php4 |
/etc/apache2/mods-enabled/php4.conf를 편집하고 다음 줄을 주석 처리합니다:
| |
/etc/apache2/ports.conf를 편집하고 Listen 443을 추가합니다:
| Listen 80 Listen 443 |
이제 몇 가지 Apache 모듈(SSL, rewrite 및 suexec)을 활성화해야 합니다:
a2enmod ssl
a2enmod rewrite
a2enmod suexec
a2enmod includeApache를 재시작합니다:
/etc/init.d/apache2 restart새 사용자 www-data가 시스템에 자동으로 생성됩니다.
JDK(자바 개발 키트) 설치
Tomcat을 실행하려면 JDK를 설치하고 JAVA_HOME 환경 변수를 설정하여 시스템에서 JDK 환경의 위치를 식별해야 합니다. JDK 5.0을 사용하기로 선택했습니다.
- JDK 5.0을 http://java.sun.com/j2se/1.5.0/download.jsp에서 다운로드할 수 있습니다.
- JDK 5.0 Update 6 다운로드를 클릭하여 다운로드 페이지로 이동합니다.
- 라이센스 계약을 수락하려면 수락을 클릭합니다.
- 다음으로 리눅스 자가 압축 파일을 선택합니다. 이는 rpm이 아닌 자가 압축 바이너리 파일의 다운로드입니다.
- 선호하는 다운로드 디렉토리에 다운로드합니다. 해당 디렉토리로 변경하고 다음 명령을 실행하여 실행 가능하게 만듭니다:
chmod +x jdk-1_5_0_06-linux-i586.bin이제 파일을 실행합니다:
./jdk-1_5_0_06-linux-i586.bin이제 jdk1.5.0_06이라는 새 디렉토리가 생성되어야 합니다. 이제 이 디렉토리를 실행해야 하는 위치로 이동합니다. 저는 /usr/lib/를 선택했습니다.
mv jdk1.5.0_06 /usr/lib이제 다음 명령으로 JAVA_HOME에 대한 심볼릭 링크를 jdk라는 이름으로 생성합니다. 이렇게 하면 필요할 경우 서로 다른 JVM 간에 쉽게 전환할 수 있습니다.
cd /usr/lib
ln -s jdk1.5.0_06 jdk이제 JAVA_HOME 환경 변수를 설정해야 합니다. /etc/profile의 끝에 export PATH 바로 뒤에 다음을 추가합니다.
| JAVA_HOME="/usr/lib/jdk" export JAVA_HOME |
/etc/profile은 시작 시 및 사용자가 시스템에 로그인할 때 실행됩니다. 환경을 업데이트하려면 시스템에서 로그아웃한 후 다시 로그인해야 합니다.
JAVA_HOME이 올바르게 정의되었는지 확인하려면 아래 명령을 실행합니다. 이 명령은 Java SDK의 위치를 보고해야 하며, /usr/lib/jdk여야 합니다.
echo $JAVA_HOMETomcat 설치
이 섹션에서는 Apache Tomcat 5.5.16을 다운로드하고 설치합니다. 이 특정 설정에서는 소스에서 패키지를 빌드할 필요가 없으며, 바이너리 버전을 다운로드합니다.
여기에서 선호하는 다운로드 디렉토리에 바이너리 버전을 다운로드합니다: http://tomcat.apache.org/download-55.cgi. 5.5.16에 대한 코어 섹션에서 tar.gz를 선택합니다.
이제 해당 디렉토리로 변경하고 다음 명령을 사용하여 파일을 추출합니다:
cd /mydownloads #(다운로드 디렉토리로 변경해야 합니다)
tar xvzf apache-tomcat-5.5.16.tar.gz이제 apache-tomcat-5.5.16이라는 새 디렉토리가 생성되어야 합니다. 이제 이 디렉토리를 설치해야 하는 위치로 이동합니다. 다시 한 번, 저는 /usr/lib/를 선택했습니다. 이 위치는 Tomcat 문서에서 CATALINA_HOME으로 언급됩니다.
mv apache-tomcat-5.5.16 /usr/lib- 다음으로 /usr/lib/ 디렉토리로 변경합니다.
cd /usr/lib- 이제 다음 명령으로 CATALINA_HOME에 대한 심볼릭 링크를 apache-tomcat이라는 이름으로 생성합니다.
ln -s apache-tomcat-5.5.16 apache-tomcat이렇게 하면 Tomcat을 업그레이드할 때마다 시작 및 종료 스크립트를 변경할 필요가 없으며, 원할 경우 시스템에 여러 버전의 Tomcat을 유지하고 쉽게 전환할 수 있습니다.
이제 CATALINA_HOME/bin 디렉토리에서 Tomcat을 시작하고 중지할 수 있어야 합니다. bash 셸이 아닌 다른 셸을 사용하는 경우 명령 앞에 sh를 추가해야 합니다. 이제 Tomcat이 설치되었는지 확인하기 위해 Tomcat을 시작하고 브라우저를 열어 http://localhost:8080을 입력하여 확인할 수 있어야 합니다. 포트 8080은 Tomcat의 기본 포트이며 /usr/lib/apache-tomcat/conf/server.xml 파일에서 쉽게 변경할 수 있습니다. (이 파일은 나중에 작업할 것입니다.) 이 페이지에 원격으로 접근할 계획이라면 라우터 내에서 해당 포트를 서버의 IP 주소로 포워딩해야 합니다. 이제 Tomcat 문서 및 샘플 JSP/Servlet 스크립트에 대한 링크가 포함된 Tomcat 환영 페이지가 표시되어야 합니다. 환영 페이지에 있는 예제를 실행하여 Tomcat이 실행 중인지 확인합니다.
cd /usr/lib/apache-tomcat/bin
./startup.sh서버를 종료하려면 다음 명령을 실행해야 합니다. 시도해 보셔도 좋지만, 지금은 Tomcat을 실행한 상태로 두겠습니다.
./shutdown.shmod_jk 설치 및 구성
Tomcat과 Apache 간의 연결을 만들기 위해 mod_jk 커넥터를 다운로드하고 설치해야 합니다. Apache 문서에서는 특정 리눅스 배포판에 대해 패키지 버전의 mod_jk를 설치할 것을 권장합니다. 많은 구식 자료에서는 mod_jk2 커넥터를 설치할 것을 권장하지만, mod_jk가 mod_jk2보다 먼저 개발되었지만 여전히 완전히 지원되며 매우 안정적이라는 것을 발견했습니다.
Mike Millson은 Red Hat에서 Tomcat과 Apache를 연결하기 위해 mod_jk를 사용하는 것에 대한 좋은 이유를 제시했습니다: Red Hat Linux에서 Tomcat과 Apache 통합.
Apache 아카이브에서 현재 소스를 다운로드하기로 선택했습니다: http://archive.apache.org/dist/jakarta/tomcat-connectors/jk/source/jk-1.2.15/. jakarta-tomcat-connectors-1.2.15-src.tar.gz 파일을 /usr/src/ 디렉토리에 다운로드합니다.
/usr/src 디렉토리로 변경합니다.
cd /usr/src- 다음으로 내용을 추출하여 /usr/src/jakarta-tomcat-connectors-1.2.15-src 디렉토리를 생성합니다.
tar xvzf jakarta-tomcat-connectors-1.2.15-src.tar.gz- /usr/src/jakarta-tomcat-connectors-1.2.15-src/jk/native 디렉토리로 변경합니다.
cd jakarta-tomcat-connectors-1.2.15-src/jk/native- 이제 시스템에 맞는 사용자 정의 구성 파일을 생성할 준비가 되었습니다. 다음을 실행합니다:
./buildconf.sh이렇게 하면 /usr/src/jakarta-tomcat-connectors-1.2.15-src/jk/native 디렉토리에 구성 파일이 생성됩니다.
- 시스템에 맞게 mod_jk를 구성하기 위해 다음 명령을 실행합니다.
중요 참고: apxs2(APache eXtension tool)가 Apache와 함께 설치되고 구성되어 있어야 합니다. 만약 없다면, 저의 경우처럼, www.debian.org에서 apache2-threaded-dev 패키지를 다운로드하고 설치할 수 있습니다(이 패키지는 이전 apache-dev 패키지를 대체했습니다). 이 글을 작성할 당시 www.debian.org의 Debian 패키지 아카이브가 다운되어 있었고, 그들은 문제를 해결할 때까지 임시 사이트인 pdo.debian.net으로 저를 안내했습니다. apache2-threaded-dev 패키지를 찾았고 성공적으로 설치할 수 있었습니다.
명령의 경로에 시스템에서 apxs2의 올바른 위치를 포함해야 합니다.
./configure --with-apxs=/usr/bin/apxs2- 이제 다음을 사용하여 mod_jk를 빌드합니다:
make- 마지막으로 이전 명령이 성공적이었다면 새로 생성된 mod_jk.so를 Apache2 모듈 디렉토리로 복사합니다. 제 모듈은 /usr/lib/apache2/modules에 위치했습니다.
cd apache-2.0
cp /usr/src/jakarta-tomcat-connectors-1.2.15-src/jk/native/apache-2.0/mod_jk.so /usr/lib/apache2/modules이제 Apache와 Tomcat을 구성하는 다음 단계로 이동할 준비가 되었습니다. mod_jk 커넥터에 대한 추가 정보는 http://tomcat.apache.org/connectors-doc/howto/apache.html에서 찾을 수 있습니다.
Tomcat 및 Apache 구성
workers.properties 파일을 생성합니다.
중요 참고: 수정하기 전에 구성 파일의 백업 복사본을 반드시 만드십시오.
workers.properties 파일은 ajpv13 프로토콜을 통해 통신하는 워커를 정의하여 각 프로세스가 Tomcat에 어떻게 연결되는지에 대한 세부 정보를 포함합니다. 더 자세한 내용은 Workers HowTo를 참조하십시오.
- 먼저 Apache2 루트 디렉토리에 workers.properties 파일을 생성합니다.
touch /etc/apache2/workers.properties- 다음으로 workers.properties 파일을 열고 다음을 추가합니다. 인터넷에서 workers.properties 파일의 많은 다른 예제를 찾을 수 있지만, 이것은 제가 만든 것이며 이 튜토리얼에서 이미 구성된 다른 부분과 잘 작동하는 것 같습니다.
| workers.tomcat_home=/usr/lib/apache-tomcat workers.java_home=/usr/lib/jdk ps=/ worker.list=worker1 worker.default.port=8009 worker.default.host=localhost worker.default.type=ajp13 worker.default.lbfactor=1 |
파일을 저장하고 닫습니다.
이제 /etc/apache2/apache2.conf 파일을 열고 맨 아래에 다음 줄을 추가해야 합니다. (httpd.conf는 단지 이전 호환성을 위한 것입니다):
| LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so # workers.properties를 찾는 위치 JkWorkersFile /etc/apache2/workers.properties # jk 로그를 저장할 위치 JkLogFile /var/log/apache2/mod_jk.log # jk 로그 수준 설정 [debug/error/info] JkLogLevel info # 로그 형식 선택 JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " # JkOptions는 SSL KEY SIZE를 전송하도록 지시 JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories # JkRequestLogFormat은 요청 형식을 설정 JkRequestLogFormat "%w %V %T" # /jsp-examples 컨텍스트에 대한 서블릿을 worker1이라는 이름의 워커로 전송 JkMount /jsp-examples worker1 # /jsp-examples/* 컨텍스트에 대한 JSP를 worker1이라는 이름의 워커로 전송 JkMount /jsp-examples/* worker1 |
파일을 저장하고 닫습니다.
이제 마지막 보안 점검입니다.
tomcat이라는 그룹과 사용자를 생성합니다:
groupadd tomcat
useradd -g tomcat tomcat그런 다음 Tomcat 경로의 사용자 및 그룹을 변경합니다:
chown -R tomcat:tomcat /usr/lib/apache-tomcat-5.5.16tomcat 사용자의 비밀번호를 변경하려면 root로 다음을 입력합니다:
passwd tomcat지침을 따르십시오.
그런 다음 Tomcat 서버를 시작하고 중지하려면 tomcat 사용자를 사용해야 합니다.
su - tomcat이제 Tomcat을 중지하고 시작합니다:
cd /usr/lib/apache-tomcat/bin
./shutdown.sh
./startup.sh그리고 Apache를 재시작합니다:
/etc/init.d/apache2 restart완료되었습니다.
테스트:
이 테스트에서는 “ /jsp-examples “로 시작하는 모든 URL을 Tomcat으로 전달하고 있습니다.
실제 상황에서는 JSP 또는 서블릿만 JK 워커로 전달할 수 있습니다.
기본 Tomcat 포트인 8005, 8009 및 8080에서 다른 서버가 실행되고 있지 않은지 확인하십시오.
Apache 포트(일반적으로 8080 또는 80)에서 다른 서버가 실행되고 있지 않은지 확인하십시오.
먼저 Tomcat을 시작하십시오: 항상 Tomcat을 먼저 시작한 다음 Apache를 시작하십시오.
Tomcat을 다시 시작해야 하는 경우, 먼저 Apache를 중지한 다음 Tomcat이 다시 시작된 후에 Apache를 재시작해야 합니다.
Apache를 시작하십시오: 브라우저를 http://localhost로 지정하고 기본 Apache 페이지가 표시되는지 확인하십시오. 필요에 따라 “localhost”를 실제 머신 이름/IP로 대체하십시오.
브라우저를 http://localhost:8080으로 지정하고 기본 Tomcat 페이지가 표시되는지 확인하십시오.
브라우저를 http://localhost/jsp-examples/로 지정하고 Tomcat 예제의 인덱스 페이지가 표시되는지 확인하십시오.
이 페이지는 Apache에서 제공되며 Apache와 Tomcat의 통합이 성공적으로 완료되었음을 나타냅니다.
참조 및 경로:
Tomcat conf:
/usr/lib/apache-tomcat/conf/server.xmlTomcat 중지 및 시작:
cd /usr/lib/apache-tomcat/bin
./shutdown.sh
./startup.shApache 모듈:
/usr/lib/apache2/modulesApache conf:
/etc/apache2/workers.properties
/etc/apache2/apache2.conf
/etc/apache2/httpd.confApache2:
/etc/init.d/apache2 restart
/etc/init.d/apache2 stop
/etc/init.d/apache2 start이 튜토리얼에 대한 도움이 필요하신 분은 여기에 질문을 게시해 주십시오:
https://www.howtoforge.com/forums/showthread.php?t=3595
또는 튜토리얼에서 오류를 발견하신 경우 포럼에서 알려주십시오.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.