tomcat5 apache2 mod_jk.so 연동

points
tomcat5 와 apache2 , mod_jk.so 연동하는 한글문서는 그리 많지 않은거 같아
삽질하면서 일단 성공은 했습니다.
간단한 작업기록을 남깁니다. 오류가 있으면 고수님들의 정정을
부탁드립니다.
운영체제 : SULinux 1.0 ( 얼마전 리눅스전시회에서 회원가입하고 받은 시디로 설치)
A.P.M 설치환경 : apache 5.0.55, php 5.1.2 , mysql 5.0.18
웹루트 : /usr/local/apache
==== tomcat5 설치 ====
0) 자바가상머신 jdk 1.5 버전을 java.sun.com 에서 rpm 으로 다운받아 설치
/etc/profile 등에 JAVA_HOME 과 PATH 에 bin 경로 등록
내 경우 /usr/java/jdk-1.5xxx 하는걸 ln -s 명령어로 /usr/java/jdk 로 해서
JAVA_HOME 으로 쓰고 있습니다.
1) http://tomcat.apache.org/download-55.cgi 에서
http://mirror.apache.or.kr/tomcat/tomcat-5/v5.5.17/bin/apache-tomcat-5.5...
톰캣 5.5.17 버전 다운로드
2) /usr/local 에 압축풀고 링크걸어서 /usr/local/tomcat 을 톰캣 홈으로 지정
3) http://localhost:8080 으로 톰캣 실행 확인
==== mod_jk.so ====
아파치 연동 모듈은 mod_jk2.so 도 있는데 이상하게도 버전이 더 높을거 같은 jk2 는
더이상 개발이 중단되고 mod_jk.so 가 더 활발하게 개발되는 듯
1) http://tomcat.apache.org/connectors-doc/ 에서 1.2.15 소스를 다운받음.
http://www.apache.org/dist/tomcat/tomcat-connectors/jk/source/jk-1.2.15/...
컴파일된 바이너리는 1.2.6 혹은 1.2.14(64비트용) 밖에 없어서 최신 소스컴파일하기로
함. 최신이라고 해봤자 작년 11 월이 마지막 업데이트된듯.
2) 소스 압축풀고 jk/native 디렉토리에 들어가서 루트권한으로..
# ./configure --with-apxs=/usr/local/apache/bin/apxs
# make
# make install 하면
mod_jk.so 파일이 /usr/local/apache/modules 에 생성됨 , 만약 없으면 컴파일한 곳에서
복사해서 apache/modules 디렉토리로 복사함. 이 mod_jk.so 파일 하나만 필요함.
==== apache2 와 연동하기 ====
1) /usr/local/apache/conf 디렉토리에 mod_jk.conf 파일 생성
(예제 파일 - /examples context 를 샘플로 사용)
Alias /examples /usr/local/tomcat/webapps/examples
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
JkMount /examples/servlet/* ajp13
JkMount /examples/*.jsp ajp13
2) httpd.conf 파일에서 위 mod_jk.conf 를 불러옴.
## httpd.conf 제일 마지막에 아래 한줄 추가
Include conf/mod_jk.conf
그리고 DirectoryIndex 지시자에 index.jsp 도 추가해줌.
3) /usr/local/apache/conf 디렉토리에 workers.properties 파일 생성(혹은 복사)
이 파일은 mod_jk 컴파일한 디렉토리의 conf 에 minimal 로도 있는데 그것 사용해도 될듯.
쓸데 없이 길게 된듯.
workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/java/jdk
ps=/
worker.list=ajp12, ajp13
worker.ajp12.port=8007
worker.ajp12.host=localhost
worker.ajp12.type=ajp12
worker.ajp12.lbfactor=1
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp12, ajp13
worker.inprocess.type=jni
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)tomcat.jar
worker.inprocess.cmd_line=start
worker.inprocess.stdout=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stdout
worker.inprocess.stderr=$(workers.tomcat_home)$(ps)logs$(ps)inprocess.stder
4) /usr/local/tomcat/webapps/examples 디렉토리 생성, 위 mod_jk.conf 에서 JkMount 할
곳임. 그리고 그안에 간단한 index.jsp 파일을 생성해둠.
5) 톰캣과 아파치 재시작
6) 웹브라우저로 http://localhost/examples 라고 하면 위에서 만든 index.jsp 가
정상적으로 떠야 됨. 참고로.. 이렇게 테스트하면서 tomcat의 server.xml 파일은
건드리지 않았습니다.
============
- 인쇄에 적합한 버전
- Login or register to post comments

points
jsp 가상호스팅 관련.
http://tomcat.apache.org/tomcat-4.1-doc/config/jk.html
Example Configuration Files
Excerpt from workers.properties showing the Ajp13 worker:
# Setup for Solaris system
#
workers.tomcat_home=/usr/local/jakarta-tomcat
workers.java_home=/usr/java
ps=/
worker.list=ajp12, ajp13
# Definition for Ajp13 worker
#
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
Excerpt from Apaches httpd.conf showing JK directives:
# Load mod_jk
#
LoadModule jk_module libexec/mod_jk.so
AddModule mod_jk.c
# Configure mod_jk
#
JkWorkersFile /usr/local/jakarta-tomcat/conf/jk/workers.properties
JkLogFile /usr/local/apache/logs/mod_jk.log
JkLogLevel info
# First Virtual Host.
#
(VirtualHost 10.0.0.1:80)
DocumentRoot /web/host1
ServerName host1.apache.org
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
(/VirtualHost)
# Second Virtual Host. Also accessible via HTTPS
#
(VirtualHost 10.0.0.2:80)
DocumentRoot /web/host2
ServerName host2.apache.org
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
(/VirtualHost)
(VirtualHost 10.0.0.2:443)
DocumentRoot /web/host2
ServerName host2.apache.org
SSLEngine On
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
(/VirtualHost)
=== 건달의 경지를 꿈꾸며 ===
points
...
http://www.mail-archive.com/linuxtechbiz@yahoogroups.com/msg00038.html === 건달의 경지를 꿈꾸며 ===
points
server.xml 에서 Listener 를 설정해주니 정상적으로 되는군..
(Host name="www.domain1.com" appBase="/home/www/web1/web"
unpackWARs="true" autoDeploy="true")
(Context path="" docBase="jsp-examples" debug="0"
reloadable="true"/)
(Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="web1_access_log."
suffix=".txt"
pattern="common" resolveHosts="false"/)
(/Host)
(Listener className="org.apache.jk.config.ApacheConfig"
modJk="/usr/lib/apache2/modules/mod_jk.so"
workersConfig="/etc/apache2/workers.properties"/)
=== 건달의 경지를 꿈꾸며 ===
points
server.xml 설정에서..
amd64 서버에서 jdk6 설치 tomcat 5.5.20 mod_jk.so apache2.0.59 사용시
가상웹호스팅 설치시 tomcat 4.1 버전과 달리 5.0 에서는
server.xml
(Host name="aaa.bada.cc" appBase="/home/aaa" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false")
(Context path="" docBase="public_html" debug="0" reloadable="true" crossContext="true"/)
...
와 같이 해야한다.
즉 Host 에서 appBase 를 /home/aaa/public_html 로 하고
Context 에서 docBase 를 절대경로로 /home/aaa/public_html 와 같이 하니 에러가남
위와 같이 docBase 를 상대경로로 해주니 정상적으로 됨.
=== 건달의 경지를 꿈꾸며 ===
points
Cool site!
Hi! Cool site
southern life health insurance company
hartford life insurance
cheap term life insurance
discount life insurance
life insurance rate
variable universal life insurance
zurich life insurance company
banner life insurance
life insurance lead
life insurance online
See you!