1.환경
rh 9.x
apache_1.3.34
tomcat 5.0.28
connector(mod_jk) - 1.2.15 jakarta-tomcat-connectors-1.2.15-src.tar.gz
jdk 1.4.x
2. apache 설치
- 압축해제 tar xvzf apache_1.3.34.tar.gz
- 설치
./configure --prefix=/usr/local/apache --enable-shared=proxy --bindir=/usr/bin
--sbindir=/usr/sbin --libexecdir=/usr/local/apache/lib --logfiledir=/var/log/httpd
--sysconfdir=/etc/httpd/conf --enable-module=so --enable-module=status
--enable- module=info
make; make install;
3. jdk 설치 (binary)
/usr/j2sdk-1_4_2_06-linux-i586.bin 하면 압축이 주루루 풀리면서
j2sdk1.4.2_06 디렉토리 생김
소프트 링크 걸어줌 ln -s j2sdk1.4.2_06/ java
4. tomcat(binary) 설치
- group 및 user 생성
groupadd tomcat ; useradd -g tomcat tomcat
- tomcat 압축그냥 풀어주면됨
- 그리고 tomcat로 소프트 링크
- /usr/local/tomcat
- user tomcat 의 .bash_profile수정 /home/tomcat/.bash_profile
export JAVA_HOME=/usr/java
export CATALINA_HOME=/usr/local/tomcat
export TOMCAT_HOME=/usr/local/tomcat
5. 아파치, tomcat 테스트
아파치 실행후
http://url - 아파치 테스트페이지 나오면 정상
톰캣 실행후
http://url:8080 - 톰캣 테스트 페이지(못생긴 고양이) 나오면 정상
6. 아파치 톰캣 연동위한 mod_jk 설치
- 압축품 tar xvzf jakarta-tomcat-connectors-1.2.15-src.tar.gz
- jakarta-tomcat-connectors-1.2.15-src/jk/native 위치로 이동
- ./configure --with-apxs=/usr/sbin/apxs
=/usr/sbin/apxs 이 경로는 apache설치할때 --sbindir 여기에 지정된 위치
- make
- jakarta-tomcat-connectors-1.2.15-src/jk/native/apache1.3 으로 이동
- mod_jk.so 파일 확인
- cp mod_jk.so /usr/local/apache/lib/
/usr/local/apache/lib/ 위치는 apache설치할때 --libexecdir 에 지정된 위치
7. httpd.conf 수정 및 work.propeties 생성
httpd.conf파일에 다음과 같이 추가
JkWorkersFile /etc/httpd/conf/workers.properties
JkLogFile /var/log/httpd/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# Send JSPs for context /jsp-examples to worker named default
JkMount /*.jsp default
Alias "/" "/usr/local/tomcat/webapps/ROOT/"
JkMount /jsp-examples/*.jsp default
Alias /jsp-examples "/usr/local/tomcat/webapps/jsp-examples/"
JkMount /servlets-examples/* default
Alias /servlets-examples "/usr/local/tomcat/webapps/servlets-examples/"
<Directory "/usr/local/tomcat/webapps/ROOT/">
Options FollowSymLinks
AllowOverride None
Allow from all
</Directory>
<Directory "/jsp-examples">
Options FollowSymLinks
AllowOverride None
Allow from all
</Directory>
DirectoryIndex 지시자에 index.jsp 추가
DocumentRoot /home/httpd/html - 아파치 웹페이지 루트디렉토리
- work.propeties 내용
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/java
ps=/
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=1
8. 아파치 톰캣 연동테스트
http://url 해서 톰캣기본페이지(못생긴고양이) 나오면 성공
9. 1~8까지 작업이 성공적으로 끝나면 한가지 의문점
아파치와 톰캣의 연동 가장 큰(?) 목적은 static page(html등) 는 apache에서처리하고
dynamic page(jsp등) 는 톰캣에서 처리하는데 있다 그런데 1~8번까지의 과정을 거치면
모든 소스 (static, dynamic) 는 톰캣의 소스 기본위치인
/usr/local/tomcat/webapps/ROOT 에 놓여야한다
만일 apache의 DocumentRoot 에 /home/httpd/html 이라고하고
이 위치에 test.html페이지를 넣고
http://url/test.html 을 해보면 404error 즉 file not found error가 나올것이고
아파치의 error_log를 보면
/usr/local/tomcat/webapps/ROOT/test.html 을 찾는것을 확인할수 있다.
이 문제를 해결하기 위해 apache 의 viturlhost 기능을 이용한다
httpd.conf에 다음과 같이 추가
<VirtualHost *:80>
ServerName aaa.co.kr
DocumentRoot /home/httpd/html
# Use SetEnvIf to st no-jk when /home/ is encountered
SetEnvIf Request_URI "/*" no-jk
Alias / /home/httpd/html/
<Directory "/home/httpd/html">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
이렇게 하고 아파치 재시작
http://url/test.html 하면 apache의 DocumentRoot 에 위치한
/home/httpd/html/test.html 을 보여주고
http://url/index.jsp하면 톰캣의 DocumentRoot,에 위치한
/usr/local/tomcat/webapps/ROOT/index.jsp 를 보여줌을 확인할수 있다
--끝
[출처] 아파치 톰캣연동 작업|작성자 진완
'TOMCAT > 톰캣 아파치 연동' 카테고리의 다른 글
아파치 설치시 ssl 설치 (https 접속) (0) | 2012.06.04 |
---|---|
아파치 톰캣 연동 (리눅스) (14) | 2010.03.11 |
댓글