tomcat5 apache2 mod_jk.so 연동

nonots의 이미지

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.17.tar.gz
톰캣 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/jakarta-tomcat-connectors-1.2.15-src.tar.gz
컴파일된 바이너리는 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 파일은
건드리지 않았습니다.

============

nonots의 이미지

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)

=== 건달의 경지를 꿈꾸며 ===


=== 건달의 경지를 꿈꾸며 ===

nonots의 이미지


=== 건달의 경지를 꿈꾸며 ===

nonots의 이미지

(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"/)

=== 건달의 경지를 꿈꾸며 ===


=== 건달의 경지를 꿈꾸며 ===

nonots의 이미지

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 를 상대경로로 해주니 정상적으로 됨.

=== 건달의 경지를 꿈꾸며 ===


=== 건달의 경지를 꿈꾸며 ===

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.