리눅스에서 아파치와 톰캣을 연동하려고 한다.
http://hellogk.tistory.com/123
아파치에서 제공하는 "tomcat-connector" 를 이용하면
아파치와 톰캣을 연결하여 아파치 포트(80)로 접속하게 되면
톰캣 웹화면이 출력되게끔 해주는 커넥터입니다.
물론, 톰캣 포트를 그냥 8080을 80으로 변경해서 접속해도 가능하나
보안이 문제가 된다고 합니다.
해당 포스팅에는 톰캣을 80으로 적용시 발생되는 문제점은 다루지 않도록 하겠습니다.
그럼 이전 포스팅에 이어서 apache + tomcat 연동법을 공유하도록 하겠습니다.
2014/12/09 - [개발에필요한연동법/리눅스서버구축] - CentOS 6.5 - Tomcat7 다운로드 + 서버 실행 및 방화벽 해제 알아보기
2014/12/10 - [개발에필요한연동법/리눅스서버구축] - CentOS wget을 이용하여 Apache 2.4 다운로드 및 서버 실행 (방화벽해제 포함)
아파치와 톰캣이 설치되어있다는 가정하에 진행하도록 하겠습니다.
tomcat-connector파일을 wget명령어를 이용하여 다운로드 받도록 하겠습니다.
1 2 3 4 5 6 7 8 9 10 11 12 | [root@localhost local ]
[root@localhost local ]
--2014-12-10 10:57:29-- http: //apache .mirror.cdnetworks.com /tomcat/tomcat-connectors/jk/tomcat-connectors-1 .2.40-src. tar .gz
Resolving apache.mirror.cdnetworks.com... 61.110.198.174
Connecting to apache.mirror.cdnetworks.com|61.110.198.174|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1526449 (1.5M) [application /x-gzip ]
Saving to: `connector. tar .gz'
100%[======================================>] 1,526,449 4.39M /s in 0.3s
2014-12-10 10:57:49 (4.39 MB /s ) - `connector. tar .gz' saved [1526449 /1526449 ]
|
다운로드가 완료되었나요?
그럼 압축 해제를 한다음
컴파일 + 인스톨진행 하도록 하겠습니다.
1 2 3 4 | [root@localhost local ]
[root@localhost local ]
[root@localhost native]
[root@localhost native]
|
커넥터 설치가 완료되었다면 아파치 디렉토리내에 있는 "conf" 디렉토리로 이동합니다.
아파치와 톰캣을 연결해주는 중요 설정부분이므로
각 순서별로 진행하시면 되겠습니다.
workers.properties 파일생성
1 2 3 4 5 6 7 | workers.tomcat_home= "/usr/local/apache-tomcat-7.0.57"
workers.java_home= "/usr/java/jdk1.7.0_72"
ps =/
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13. type =ajp13
|
workers.tomcat_home에 대입되는 경로는
톰캣디렉토리경로를 작성해주면 되겠습니다.
workers.java_home에는 JDK의 디렉토리 설치경로를
작성해주시면 되겠고요.
mod_jk.conf 파일생성
1 2 3 4 5 6 7 8 9 10 11 12 13 | <IfModule mod_jk.c>
JkWorkersFile "/usr/local/apache/conf/workers.properties"
JkLogFile "/usr/local/apache-tomcat-7.0.57/logs/mod_jk.log"
JkLogLevel info
JkAutoAlias "/usr/local/apache-tomcat-7.0.57/webapps"
JkMount /* ajp13
JkMount /*.jsp ajp13
JkMount /servlet/ * ajp13
JkMount /examples/ *.jsp ajp13
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
< /IfModule >
|
JkWorkersFile에는 workers.properties 파일경로를 작성해줍니다.
JkLogFile의 경우는 톰캣의 로그디렉토리에
"mod_jk.log" 파일명을 선언해줍니다
( mod_jk.log 에 대한 파일명은 필수는 아닐거같군요.)
이어서 conf디렉토리내에 존재하는 httpd.conf파일에
해당 코드들을 추가해주도록 합니다.
httpd.conf 코드 추가
vi 실행 후 하단으로 좀 내리다보면
LoadModule이라고 여러개 선언되어있는 부분이 있는데
이 부분에 맨 끝라인 다음줄에 다음 코드를 추가해주도록 합니다.
1 | LoadModule jk_module modules /mod_jk .so
|
httpd.conf 파일 맨 끝으로 내린 후,
코드를 추가해주도록 합니다.
지금까지 했던 부분이 아파치와 톰캣 연동에 마지막 절차입니다.
자 그럼 아파치와 톰캣서버를 각각 실행시켜주도록 해보겠습니다.
아파치 실행
1 2 | [root@localhost local ]
[root@localhost bin]
|
톰캣 실행
1 2 | [root@localhost bin]
[root@localhost bin]
|
기존 80포트 접속시 "it works!" 라는 문구가 출력이 되었으나
톰캣커넥터 연동으로 인하여 하단과 동일한 실행화면이 출력될 것입니다.
출처: http://hellogk.tistory.com/123 [IT Code Storage]
1. 다운로드
wget http://apache.mirror.cdnetworks.com/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.42-src.tar.gz -O connector.tar.gz
2.
[root@localhost local]# tar -zxvf connector.tar.gz
[root@localhost local]# cd tomcat-connectors-1.2.42-src/native/
[root@localhost native]# ./configure --with-apxs=/usr/local/apache/bin/apxs
->나는 ./configure --with-apxs=/usr/local/httpd/bin/apxs
[root@localhost native]# make && make install
3.
커넥터 설치가 완료되었다면 아파치 디렉토리내에 있는 "conf" 디렉토리로 이동합니다.
[root@localhost native]# cd /usr/local/apache/conf/ ->cd /usr/local/httpd/conf
4.
아파치와 톰캣을 연결해주는 중요 설정부분이므로
각 순서별로 진행하시면 되겠습니다.
workers.properties 파일생성
[root@localhost conf]
workers.tomcat_home="/usr/local/apache-tomcat-7.0.57"
workers.java_home="/usr/java/jdk1.7.0_72"
ps=/
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
나는
workers.tomcat_home="/usr/local/server/was1/apache-tomcat-7.0.77"
workers.java_home="/usr/local/java/jdk1.7.0_45"
ps=/
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
***was를 여러개 사용할 예정이라서 연동 후에 다시 수정해야 할 것 같다.
5.
mod_jk.conf 파일생성
[root@localhost conf]# vi mod_jk.conf
<IfModule mod_jk.c>
JkWorkersFile "/usr/local/apache/conf/workers.properties"
JkLogFile "/usr/local/apache-tomcat-7.0.57/logs/mod_jk.log"
JkLogLevel info
JkAutoAlias "/usr/local/apache-tomcat-7.0.57/webapps"
JkMount /* ajp13
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /examples/*.jsp ajp13
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
</IfModule>
-> 난
<IfModule mod_jk.c>
JkWorkersFile "/usr/local/httpd/conf/workers.properties"
JkLogFile "/usr/local/server/was1/apache-tomcat-7.0.77/logs/mod_jk.log"
JkLogLevel info
JkAutoAlias "/usr/local/server/was1/apache-tomcat-7.0.77/webapps"
JkMount /* ajp13
JkMount /*.jsp ajp13
JkMount /servlet/* ajp13
JkMount /examples/*.jsp ajp13
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
JkRequestLogFormat "%w %V %T"
</IfModule>
6.
JkWorkersFile에는 workers.properties 파일경로를 작성해줍니다.
JkLogFile의 경우는 톰캣의 로그디렉토리에
"mod_jk.log" 파일명을 선언해줍니다
( mod_jk.log 에 대한 파일명은 필수는 아닐거같군요.)
7.
이어서 conf디렉토리내에 존재하는 httpd.conf파일에
해당 코드들을 추가해주도록 합니다.
httpd.conf 코드 추가
[root@localhost conf]# vi httpd.conf
vi 실행 후 하단으로 좀 내리다보면
LoadModule이라고 여러개 선언되어있는 부분이 있는데
이 부분에 맨 끝라인 다음줄에 다음 코드를 추가해주도록 합니다.
LoadModule jk_module modules/mod_jk.so
8.
httpd.conf 파일 맨 끝으로 내린 후,
코드를 추가해주도록 합니다.
include conf/mod_jk.conf
9.
리눅스랑 아파치랑 재시작
리눅스 재시작
/usr/local/httpd/bin/httpd -k restart
톰캣 재시작
service was1 restart
여기 그림보면 포트를 쓰지 않았는데 톰캣 화면이 나온다. 연동됨.