우분투에서 아파치 웹서버 httpd 와 톰캣 연동 (ubuntu 에서 apache 웹서버 httpd 와 tomcat 연동)
먼저 톰캣과 아파치 웹서버 httpd 가 이미 설치되어 있다는 가정 하에 진행한다.
설치되어 있지 않다면 아래 문서를 보고 설치하자.
* 톰캣7 설치 : ubuntu에 tomcat7 설치 (http://blog.naver.com/bb_/221330415361)
* 아파치 httpd 설치 : 우분투에서 아파치 웹서버 httpd 설치 (http://blog.naver.com/bb_/221422963830)
tomcat 버전 : 7.0.90 (apache-tomcat-7.0.90.tar.gz) / 주소 : http://tomcat.apache.org/download-70.cgi
apache httpd 버전 : 2.2.21 (httpd-2.2.21.tar.gz) / 주소 : http://archive.apache.org/dist/httpd/
2. mod_jk 다운로드
톰캣과 아파치 웹서버 httpd 를 연동하기 위해서는 mod_jk 라는 모듈이 필요하다.
apache httpd 2.2.21 버전과 연동 성공한 mod_jk 버전은 1.2.31 버전이다. (첨부파일 참고)
mod_jk 버전 : 1.2.31 (mod_jk-1.2.31-httpd-2.2.x.so) / 주소 : http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.31/x86_64/
버전에 맞는 mod_jk 의 so 파일을 구해서, 적용시키기 원하는 httpd 의 modules 폴더에 넣으면 된다.
ex) /home/hdwk/httpd/modules 폴더 내에 mod_jk-1.2.31-httpd-2.2.x.so 파일을 넣는다.
* 적절한 mod_jk so 파일을 얻기 위해서는 운영체제 비트수가 필요한데, 요새 거의 64비트이지만 혹시 모르니 확인해본다.
리눅스에서 비트수를 알아내는 명령어는 여러가지가 있지만 참고로 다음의 명령어들이 있다.
ex 1) 리눅스에서 getconf LONG_BIT 입력시 결과 => 64
ex 2) 리눅스에서 arch 입력시 결과 => x86_64
3. 톰캣의 AJP 포트 확인
톰캣의 conf 폴더에 들어있는 server.xml 파일에서 AJP 포트를 확인한다.
* AJP란 Apache Jserv Protocol 의 약자로, 웹서버와 어플리케이션 서버를 연동하기 위해 고안된 프로토콜이라고 생각하면 된다.
참고로 여기서 웹서버는 아파치 httpd 이고, 톰캣은 어플리케이션 서버이다.
server.xml 파일에서 AJP를 검색하면
<Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″/>
이와 같은 부분이 나온다.
여기서 “8009”가 AJP 포트이다. 기억해둔다.
(톰캣 설정에 따라 값이 다를 수 있으니 꼭 확인한다)
4. workers.properties 파일 작성
httpd 의 conf 폴더 안쪽에 workers.properties 파일을 새로 작성한다.
cd /home/hdwk/httpd/conf
vi workers.properties
내용은 아래와 같다.
|
worker.list=worker1 #AJP1.3 프로토콜 사용 |
제일 마지막 worker.worker1.port 바로 이 부분에 톰캣 server.xml 에서 봤던 AJP 포트를 기입해야 한다.
5. httpd.conf 수정
httpd 의 conf 폴더 안의 httpd.conf 파일을 수정한다.
cd /home/hdwk/httpd/conf
vi /home/hdwk/httpd/conf
LoadModule 로 검색하면 주석처리된 # LoadModule 어쩌고 저쩌고 나올 것이다.
그 바로 아래에 다음과 같이 기입한다.
|
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.x.so # tomcat connection |
so 파일명을 실제와 틀리게 쓰면 곤란하니 정확하게 쓰자.
이렇게 하면 [http://도메인주소:포트번호/파일명] 으로 접근했을 때, 파일명이 *.do 패턴에 일치할 경우 톰캣에 요청을 보내 응답을 돌려받아주고, 패턴에 일치하지 않을 경우 톰캣을 거치지 않고 httpd 웹서버에서 파일 시스템의 파일을 곧바로 전달해준다. (ex: gif, jpg, png 등)
6. httpd 웹서버 재기동
httpd 웹서버를 재기동한다.
cd /home/hdwk/httpd/bin
./apachectl stop
./apachectl start
하거나,
cd /home/hdwk/httpd/bin
./apachectl restart
하면 된다.
이제 파일명 패턴에 따라 잘 매핑되는지 (*.do 일 경우에는 톰캣을 타고 그렇지 않으면 웹서버 단에서 다 처리하는지) 확인하면 된다.
끝!