Window2000/XP + Jakarta Tomcat 4 + Apache 2 설정하기 with JK2
컨텐츠 정보
- 14,264 조회
- 0 추천
-
목록
본문
> > > 저자: 한빛리포터 정원희(유엔젤㈜ 무선인터넷 서비스사업팀/freesoft at nownuri.net) > > 본 기사는 javaservice.net에서 구했던 연동문서를 약간 편집하고 새로운 부분을 추가해 넣은 일종의 보정판입니다. > > 왜 JK2로 연동하는가? > > 아파치와 톰캣을 연동하기 위해 사용되었던 mod_jserv는 Apache/Jserv에서 포팅되기 때문에 너무 복잡하며, 아파치에 필요 없는 부분들도 많았다. Mod_serv가 유닉스 OS 상의 아파치만 지원했던 반면 JK는 보다 많은 웹서버와 OS상에서 사용할 수 있다. JK 는 보다 나은 SSL을 지원하며 톰캣 3.2.x, 3.3.x, 4.0.x, 4.1.x, 5.x를 지원한다. JK2는 JK의 리팩토링 버전이며 Apache 2를 고려해 두고 만들어졌지만 기존의 Apache 1.3 버전과도 호환된다. 또한 IIS나 NES/iPlanet같은 멀티쓰레드로 동작하는 웹서버들에서 보다 잘 작동하도록 디자인되었으며 JNI 모드를 지원하므로 서버내에서 네이티브 기능들을 불러 쓸 수도 있다. 따라서 성능과 호환성 두 가지 모두를 고려할 경우, 이제는 JK2를 이용해서 톰캣과 아파치를 (혹은 기타 다른 웹서버들을) 연동시키는 것이 바람직하다고 할 것이다. > > 자세한 내용은 아파치 자카르타 프로젝트 문서를 참고하기 바란다. > > 다른 방법은 없나? > > Apache 2를 사용한다면 mod_webapp를 이용하는 또 다른 방법이 있다. WARP 프로토콜을 구현한 mod_webapp는 사용하기 편리하지만 아파치 2.0에서만 사용할 수 있는 APR(Apache Portable Runtime)을 필요로 한다. 또한 mod_webapp는 IIS나 NES/iPlanet, Domino와 같은 웹서버들을 지원하지 않는다. (http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/index.html) > > 우선 다음과 같은 S/W가 필요하다. > Apache2.0.45 > J2SDK 1.4.1_02 (http://httpd.apache.org/download.cgi에서 apache_2.0.46-win32-x86-no_src.msi를 다운로드 ) > Jakarta Tomcat4.1.24 (http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.1.24/bin/에서 jakarta-tomcat-4.1.24.exe 또는 jakarta-tomcat-4.1.24-LE-jdk14.exe를 다운로드합니다. J2SDK 1.4가 이미 설치되어 있다면 LE 버전만 받으면 됩니다. 그렇지 않다면 jakarta-tomcat-4.1.24.exe를 다운로드) > mod_jk2 (http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk2/release/v2.0.2/bin/win32/참고 윈도우용 mod_jk2-2.0.43.dll) > 필요한 소프트웨어를 모두 구했으면 각각을 설치한다. 가급적이면 설치는 J2SDK부터 설치하는 것이 좋다. 그 다음 아파치나 톰켓을 차례대로 설치하면 된다. JK2는 아파치 설치 후, modules 디렉토리에 mod_jk2-2.0.43. dll 파일을 복사하면 된다. > > 환경 설정 > > 1) JAVA_HOME > > JDK가 설치된 디렉토리를 JAVA_HOME 이라는 변수이름으로 환경변수에 추가한다. 바탕화면의 '내 컴퓨터'를 선택하고 팝업메뉴를 띄워 등록정보에 들어간 다음 ‘고급→환경변수’를 선택하면 된다. 모든 사용자에 관계없이 JAVA_HOME이 유효하게 하려면 시스템 변수에, 자신의 계정에만 유효하게 하려면 사용자 변수쪽에 추가하면 된다. 변수명은 JAVA_HOME으로 하고 변수값은 JDK를 설치한 디렉토리를 지정해주면 된다(예. C:\\J2SDK_1.4.1_01). BIN 디렉토리까지 설정해주는 것이 아님을 기억하자. > > JAVA_HOME 변수의 경우는 TOMCAT에서 JSP 컴파일 등을 할 때 사용할 뿐만 아니라 다른 자바관련 툴들(ANT같은)에서도 이 변수를 사용하므로 어떻든 간에 한번은 지정하는 것이 작업에 도움이 될 것이다. > > 2) CLASSPATH > > TOMCAT에서는 JSP를 컴파일 할 필요가 있을 때 JAVA_HOME에서 설정된 패스를 기준으로 lib 디렉토리를 뒤지거나 CLASSPATH 환경변수 설정을 참고해서 컴파일에 사용할 패키지인 servlet.jar를 찾는다. 따라서 servlet.jar를 $JAVA_HOME/jre/lib/ext 같은 곳에 넣어주거나 servlet.jar가 포함되어 있는 TOMCAT의 $TOMCAT_HOME/lib 디렉토리에 CLASSPATH 설정을 해주면 된다. 환경변수 설정하는 요령은 앞의 JAVA_HOME의 그것과 동일하다. > > 3) PATH > > 자바소스 컴파일에는 javac.exe가 사용되기 때문에, 이를 시스템 어디에서나 사용할 수 있도록 환경변수의 PATH에다가 $JAVA_HOME/bin 디렉토리를 추가해주면 된다. 자바프로그래머라면 대부분 이미 추가해 놓았으리라 생각한다. > > 4) 아파치 환경설정 - httpd.conf 와 workers2.properties > > $APACHE/conf 디렉토리에 있는 httpd.conf 파일을 열고, LoadModule 이라고 되어있는 부분들을 찾아서 적당한 줄에다가 다음과 같이 입력한다. > LoadModule jk2_module modules/mod_jk2-2.0.43.dll > > 그 후에 DocumentRoot 항목을 찾아서 $TOMCAT_HOME/webapps과 같은식으로 지정해준다. > 예) DocumentRoot "c:\\Program Files\\Apache Group\\Tomcat 4.1\\webapps" > > 그리고 아래쪽에 있는 Directory 항목 역시 동일하게 수정해준다. > 예) > > 다 끝냈으면 이번에는 workers2.properties를 편집한다. 이 파일은 기본적으로 아파치에 포함되지 않으므로 conf 폴더 내에서 찾을 수가 없다. 따라서 직접 만들어줘야 하는데 $APACHE_HOME/conf에다가 workers.properties 파일을 만들고 다음의 내용을 복사해넣고 저장하면 된다. > # Define the communication channel > [status:] > [uri:/jkstatus/*] > group=status: > [shm:]disabled=1 > [channel.socket:localhost:8009] > info=Ajp13 forwarding over socket > tomcatId=localhost:8009 > > # Web Applicaton을 설정 > [uri:/examples/*] > info=Map the whole webapp > > 위에서 언급한 바와 같이 workers2.properties 파일은 $APACHE/conf에 있어야만 아파치가 읽어들일 수 있기 때문에 특히 파일의 경로에 주의해야 한다. ($TOMCAT_HOME/conf 가 아님) > > 5) 톰캣 환경설정 - jk2.properties 과 server.xml > > $TOMCAT_HOME/conf/jk2.properties 파일을 열고 편집하면 되는데 내용을 잘 모른다면 다음의 셋팅예제를 그대로 복사해 써도 무방하다. > ## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED > ## WHEN YOU EDIT THE FILE. > ## COMMENTS WILL BE _LOST_ > ## DOCUMENTATION OF THE FORMAT IN JkMain javadoc. > > # Set the desired handler list > handler.list=apr,channelSocket,request,shm > # Override the default port for the socketChannel > # Set the default port for the channelSocket > channelSocket.port=8009 > > # Default: > # channelUnix.file=${jkHome}/work/jk2.socket > # Just to check if the the config is working > # shm.file=${jkHome}/work/jk2.shm > > # In order to enable jni use any channelJni directive > # channelJni.disabled = 0 > # And one of the following directives: > > # apr.jniModeSo=/opt/apache2/modules/mod_jk2.so > > # If set to inprocess the mod_jk2 will Register natives itself > # This will enable the starting of the Tomcat from mod_jk2 > # apr.jniModeSo=inprocess > > # Dynamic library > serverRoot= "C:/Program Files/Apache Group/Tomcat/webapps " > > 완료했으면 이번에는 server.xml을 편집한다. $TOMCAT_HOME/conf/server.xml 파일을 열고 아래의 부분을 찾아 주석처리 하거나 삭제한다. 주석처리는 ‘’로 끝내면 된다. 아래부분은 TOMCAT에 포함되어 있는 Coyote 웹서버에 연결하는 커넥터인데, 여기서는 웹서버로 아파치를 사용할 것이므로 필요없다. > > > 위의 내용이 있는 곳에서 조금 아래쪽을 보면 다음과 같은 부분이 있다. org.apache.coyote.tomcat4.CoyoteConnector라는 이름의 Connector가 mod_jk2로 연결할 때 사용하는 부분으로, 아래쪽의 org.apache.ajp.tomcat4.Ajp13Connector가 mod_jk를 사용할 때 쓰는 부분이므로 mod_jk 부분(아래쪽)을 주석 처리하도록 한다. > > port="8009" minProcessors="5" maxProcessors="150" > enableLookups="true" redirectPort="8443" > acceptCount="10" debug="0" connectionTimeout="20000" > useURIValidationHack="false" > protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/> > > > > > 서버 구동 확인 > > 톰캣과 아파치를 실행시킨 후 다음의 주소를 입력해 본다. > http://localhost/examples/servlets/index.html > http://localhost/examples/jsp/index.html > 제대로 servlet 또는 jsp의 예제 페이지가 나타나고 각 예제들이 올바로 실행된다면 설치가 올바로 이루어진 것이다. 만약 jsp 나 서블릿 파일이 다운로드 된다거나 소스코드가 보인다거나 404 에러 등이 발견되면 어디에선가 셋팅이 잘못된 것이다. 클래스패스의 문제, servlet.jar 패키지의 부재, 잘못된 JDK컴파일러 설치, 설정파일 편집 오류 등 다양한 문제가 있을 수 있다. 아파치의 톰캣의 로그파일과 설치메뉴얼을 보면서 약간의 노력을 더 기울인다면 무난하게 해결 할 수 있을 것이다. >
관련자료
댓글 0
등록된 댓글이 없습니다.