정말 오랜만에 글을 남기는 것 같다..
어플리케이션 아키텍트로서 정신없이 지내다 보니,,
다양한 상황 속에서 많은 경험을 쌓았지만
기록하지 못한게 너무 많아 아쉽다는 생각이 많이 들었다.
바쁘다는 핑계 때문이지만...
------------------
매번 apache + tomcat 연동에 ssl 설정 관련해서
직접 작업하지는 않고 이런저런 자료를 던져주면서
가이드만 했었다..
이번에 기회가 생겨 처음부터 끝까지 직접 작업을 하게 되었는데,
아 이게 절대 쉬운게 아니었구나. 라는 생각부터 든다..
지금까지 나에게 이거 관련해서 일 못한다고 타박받은 많은 개발자, 운영자 분들께 미안하단 말을....;;
-------------------
작업 (윈도우 서버)
1. jdk 설치 ( 1.4.2.11)
2. tomcat 설치 ( 5.0.30)
3. apache 설치 (2.0.63, openssl 설치버전)
4. tomcat connector 설치 ( 1.2.28)
5. tomcat 두개 더 설치
6. apache virtual host 이용 tomcat 연동
7. ssl 설정
크게 작업은 위와 같았다..
딱 이틀 걸려서 작업을 했는데.. 삽질 했던것들을 빼면 반나절 정도의 작업밖에 안되는거 같다..
--------------------
1. apache + tomcat 연동 ( connector 사용, mod_jk.so)
정말 구글에서 많은 자료를 찾아 보았다.
하지만 내가 원하는 자료는 없었다..
나에게 문제는 일반적인 상황에서 연동하는 것이 아닌,
jdk 1.4 상황에서 tomcat과 apache 버전이 낮았을 떄 연동이 안되는 문제를 해결하는 것이었다.
처음에는 tomcat 5.5 + apache 2.2.30 으로 연동을 시도 했다.
connector 버전은 1.2.28 버전..
서버도 올라왔지만 계속 에러가 난다..
:jk_ajp_common.c (2643): (ajp13) connecting to tomcat failed.
:jk_ajp_common.c (1630): (ajp13) connecting to backend failed. Tomcat is probably not started or is listening on the wrong port (errno=61)
위와 같은 에러다..
세팅을 아무리 뒤져도 포트 같은 설정은 잘 되어 있다,
물론 톰켓에 올려진 서비스 역시,, 톰켓 포트로 들어가면 잘 된다..
결국은 tomcat과 apache 버전, connector 버전을 변경하기로 결정,
과감하게 내려봤다..
그랬더니,, 바로 된다... ㅠ
감동적이다..
2. 80 포트 점유 문제
해당 서버가 기존 테스트를 위해 IIS를 사용하고 있었다.
하지만 몰랐던 나는 80포트가 점유되어 있는 사실을 몰랐었다.
apache를 설치 했더니, 80포트가 이미 점유 중이라는 메시지가 떠서
netstat -an 명령어를 통해 확인해보니 역시나 사용 중..
구글링을 해보니 간단히 해결책 찾음.
Windows 7/Vista:
net stop was /y
or XP:
net stop iisadmin /y
( 참조 : http://www.sitepoint.com/unblock-port-80-on-windows-run-apache/ )
3. tomcat 개별 JAVA_HOME 설정 문제
정말 별거 아닌 건데,, 삽질 했다..
이유는 white space 때문..
다들 알다시피 보통 윈도우 서버라면 환경설정에 JAVA_HOME을 지정하고
path 설정해서 tomcat 사용시 별도로 JAVA_HOME을 지정해 사용하지 않는다.
하지만, 한 서버에 다양한 java를 이용해 서비스를 해야할 경우,
컨테이너 별로 별도 java를 지정해주어야 할 수도 있다.
그럴땐 tomcat / bin / catalina.bat 파일에 JAVA_HOME을 별도로 지정하면 된다.
하지만 어떻게 지정해야 나같이 삽질을 안하느냐..
공백이 있으면 안된다.... 즉.
set JAVA_HOME = C:\java 가 아니라
set JAVA_HOME=C:\java
4. tomcat 5.5 버전에서 jdk 1.4 돌리는 방법
난 결국 apache 연동이 되지 않아 tomcat을 5.0.x로 변경을 했지만
그냥 jdk 1.4 환경에 servlet 컨테이너가 필요한 경우라면
tomcat 5.5.x 를 내려받아서 java 1.4를 돌릴수 있다.
단, 그냥 tomcat 5.5.x 를 받아 돌리기만 하면 안되고,
tomcat.apache.org 사이트에서 tomcat 받을 때,
추가로 tomcat-compat 도 받는다.
그래서 압축을 풀어보면 몇개의 파일이 나오는데
해당 파일들을 설치한 tomcat 5.5 내 동일 폴더에 복사해 넣어주면
jdk 1.4 어플리케이션도 정상적으로 tomcat 5.5에서 기동이 가능하다.
(참고 : http://neucareer.tistory.com/68 )
5. tomcat root에 어플리케이션 배포
디렉토리 deploy시 tomcat 내 root에 배포하기 위해서는
server.xml 파일에 해당 디렉토리를 하드코딩 해 주어야 한다.
( context root를 제외하고 싶은 경우.. )
HOST 태그 내에 아래와 같이 지정.
<Context path="" docBase="c:/deploy/directory" reloadable="true"/>
하지만 위와 같이 지정을 바로 하지 않고 아래와 같이 해서 또 삽질을...
<Context path="/" docBase="c:/deploy/directory" reloadable="true"/>
path에 / 를 제외해야 root 배포가 된다..
덧글