티스토리 뷰

System/Linux

Apache와 Tomcat설치와 연동

Mr.Kang 2008. 7. 26. 13:40

1: 아파치 2를 설치한다.

httpd-2.0.55의 소스를 받아 설치한다.
tar xvfz httpd-2.0.55
./configure --enable-so --enable-mods-shared=most --prefix=/usr/local/apache2
make
make install

2: 자바(JDK 1.5이상)를 설치한다.

/usr/local/java 등의 위치에 설치하고, /etc/profile 제일 아랫줄에
export JAVA_HOME=/usr/local/java 라고 추가하고,
source /etc/profile 명령을 실행해서 변경을 적용시킨다.

3: 톰캣 5.5 설치

apache-tomcat-5.5.12.tar.gz 를 다운받아 /usr/local 에 놓고 root 권한으로 아래와 같이 실행한다.

cd /usr/local
tar xvfz apache-tomcat-5.5.12.tar.gz
ln -s /usr/local/apache-tomcat-5.5.12 /usr/local/tomcat
groupadd tomcat
useradd tomcat -g tomcat -d /usr/local/tomcat
chown -R tomcat:tomcat /usr/local/tomcat

/etc/profile에 아래의 내용을 추가하고 적용한다.

PATH="$PATH:/usr/local/java:/usr/local/bin:/usr/local/tomcat/bin"
export JAVA_HOME="/usr/local/java"
export PATH=$PATH:/usr/local/bin:/usr/local/tomcat/bin
export CATALINA_HOME=/usr/local/tomcat

위의 내용을 추가했으면,
source /etc/profile을 실행


톰캣 서버 실행 테스트

톰캣 디렉토리의 bin디렉토리가 PATH에 포함된 것을 확인하고,

startup.sh
을 실행하면 톰캣이 실행된다.

ps -def | grep tomcat
이라고 실행할 때
tomcat 18591 1 88 06:40 pts/0
와 비슷한 내용이 보이면 톰캣 서버가 실행된 것이다.
shutdown.sh
을 실행하여 톰캣 서버를 멈추고서, 다시
ps -def | grep tomcat
을 실행하면 위의 내용이 보이지 않게 된다.


4: mod_jk 설치하기
jakarta-tomcat-connectors-1.2.14.1-src.tar.gz 를 다운받고 아래처럼 실행한다.
tar xvfz jakarta-tomcat-connectors-1.2.14.1-src.tar.gz
cd jakarta-tomcat-connectors-1.2.14.1-src/jk/native
./buildconf.sh
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
make install


mod_jk.so 가 /usr/local/apache2/modules 디렉토리 안에 있고, 권한은 755로 설정되어있는지 확인한다..


5: 아파치를 톰캣에 연결하기


/usr/local/apache2/conf 디렉토리에 workers.properties 라는 이름의 파일을 만들고 아래의 내용을 입력한 후 저장한다.

workers.tomcat_home=/usr/local/tomcat
workers.java_home=/usr/local/java
ps=\
worker.list=default
worker.default.port=8009
worker.default.host=localhost
worker.default.type=ajp13
worker.default.lbfactor=50

worker.default.cachesize=10
worker.default.cache_timeout=600
worker.default.socket_keepalive=1
worker.default.reclycle_timeout=300


httpd.conf 에 아래의 내용을 추가한다.

vi /usr/local/apache/conf/httpd.conf



JkWorkersFile /usr/local/apache2/conf/workers.properties



나는

이 부분이 끝나는 다음 줄에 추가시켰다.

############### mod_jk settings
#
#
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so --> 이부분은 두번 넣어주면 에러남!
# Where to find workers.properties
JkWorkersFile conf/workers.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
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-examples/*.jsp default
# Send servlets-examples to worker named default
JkMount /servlets-examples/* default
JkMount /*.jsp default


# Static files in the jsp-examples webapp are served by apache
Alias /jsp-examples "/usr/local/tomcat/webapps/jsp-examples/"


Options FollowSymLinks
AllowOverride None
Allow from all

# The following line prohibits users from directly access WEB-INF

#AllowOverride None
#deny from all


# Static files in the servlets-examples webapp are served by apache
Alias /servlets-examples "/usr/local/tomcat/webapps/servlets-examples/"

Options FollowSymLinks
AllowOverride None
Allow from all

# The following line prohibits users from directly access WEB-INF

#AllowOverride None
#deny from all


mod_jk모듈은 위의 설정만으로 설정이 끝난다. 설정내용들의 위치는 비슷한 부분에 넣어주면 된다. 만약 위치를 잘 모르겠다면 끝부분에 추가 시켜줘도 무방하다.

아마도 tomcat과 apache를 연동하는데 있어서 가장 힘든 부분이 가상 호스트 설정일 것이다. 먼저 apache에 설정이 올바르게 되어있어야 되고 tomcat쪽에 가상호스트 설정이 되어있어야 한다. 이제 apache와 tomcat에서의 가상호스트를 설정해보자.


vi /usr/local/apache/conf/httpd.conf


NameVirtualHost *:80


ServerName xtjin.lineon.co.kr
ServerAlias www.xtjin.lineon.co.kr
DocumentRoot /home/sysadmin/html


JkMount /*.jsp default
JkMount /webapps/* default
JkMount /ROOT/* default


위의 JkMount뒤에 붇는 default 라는 이름은 workers.properties에서 받는 worker의 이름입니다.
아무이름이나 쓰셔도 됩니다. ajp13프로토콜이나 host이름과는 전혀 관련없습니다.

apache를 위한 Jk의 명령어는 상당히 다양한 명령어가 있습니다. 찾아보시고 잘 활용하시면 상당한 도움이 될겁니다.
http://jakarta.apache.org/tomcat/connectors-doc/config/apache.html


기존의 apache가상호스트와 무엇이 틀린지 보일 것이다. 만약 JSP를 사용할 사이트라면 위와 같이 JkMount 3줄을 넣어줘야 된다. 이제 tomcat에서의 가상호스트를 설정해 보자.

구문의 종속관계에 주의해서 위의 설정을 넣어준다.

로 끝나는 부분 아래 쪽에 넣어주면 된다.


vi /usr/local/tomcat/conf/server.xml
위의 추가부분에서


이부분은 반드시 추가해줘야 합니다. 그렇지 않으면 톰캣의 가상호스트가 동작하지 않습니다.
만약 디폴트 호스트인 localhost의 appBase의 경로가 바뀌었다면 거기에도 추가 해야 합니다.
그렇지 않으면 400에러를 뱉어냅니다.


이제 apache와 tomcat를 재시작 하고 JSP가 80포트로 제대로 연동이 되는지 테스트 해보자.


vi /home/sysadmin/html/index.jsp



위와 같이 입력을 하고 브라우저로 접속해서 테스트를 해보자. Hello, JSP가 보이는가? 보인다면 성공한 것이다. 이제 모든 설정이 끝났다.

'System > Linux' 카테고리의 다른 글

페도라 Subversion설치  (0) 2008.07.26
[Apache] mod_rewrite 설치  (0) 2008.07.26
스팸중계  (0) 2008.07.26
Qmail설치 및 설정  (0) 2008.07.26
Fedora설치  (0) 2008.07.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함