2013/04/11 08:25

apache + tomcat 연동시 처리위임여부. Server/WAS



흠,,

어제 운영조직에서 연락오기를..
네이버 에디터를 사용해서 화면을 구성했고.
해당 소스를 개발서버내 톰켓에 성공적으로 배포해서 테스트를 완료한 상태에서..

마찬가지 방법으로 
운영서버에 배포를 했더니 404 error가 난다는 연락이 들어왔다. 

처음에는,
이게 모지? 라는 생각 뿐이었지만.. 

차근히 뒤져보니 
톰켓에 테스트를 위해 txt파일 등을 올려봐도 
전혀 접근이 되지 않는 문제였다.

처음에는 정상적으로 배포가 안되나보다. 하며 
context root 등의 설정을 뒤지며 찾아보던 중.
개발서버와 운영서버의 차이점을 발견했다.

개발서버는 WAS만 구동하고 있었고.
운영서버는 WEB SERVER + WAS 구조였던 것.. 

그러면 말이 된다.

운영서버 접근시 포트(8080)를 적지 않아도 됐던 것은
apache 덕분이었고.. 
apache 설정중에 URL중에
특정 요청이 들어왔을 시
이 요청을 WEB SERVER가 처리할지,
WAS가 처리할지를 결정하는 부분이 있어서
해당 부분에서 테스트하고 있었던 요청을 
WAS로 던지지 않고 WEB SERVER 자체에서 처리한다는 것.. 

apache 설정파일인 httpd.conf 파일을 열어보니.
아래와 같이 설정되어 있었다. 

----------------------------------------------

LoadModule jk_module modules/mod_jk.so

<IfModule mod_jk.c>

    JkWorkersFile conf/workers.properties
    JkLogFile logs/mod_jk_new.log
    JkLogLevel error
    JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
    JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
    JkRequestLogFormat "%w %V %T"

.... 중략....

    JkMount /notice/*.jsp example
.....
----------------------------------------------

저 부분에서 notice라는 URL을 가지고 들어오는 이벤트는
WAS가 처리하는것은 오로지 .jsp만 된다고 명시되어 있기 때문이었다.



그래서 해결책은..
저 부분을 모든 요청으로 변경해서,
그래서 WAS에서 배포된대로 처리하게끔 하는것..
JkMount /notice/* example

혹은
지금 추가한 에디터의 경우 HTML로 만든 정정 콘텐츠이기 때문에.
해당 소스의 배포를 WEB SERVER에다 하는 방법.



흠,
일단 운영되고 있는 시스템은
해당 시스템에 대해서 정확하게 이해하고 접근해야지
무턱대고 문제가 있고 에러나고 있다는 부분만으로 접근하게 되면
숲은 못보고 나무만 보게 되어 해결책을 못 찾을 가능성이 높다는 걸..
또 한번의 경험으로 체득하고 간다.. 

대부분의 운영조직에서는
자신의 시스템에 대해서 잘 이해하고 있겠지만.
부족한 문서화, 현행화로 인해.
인수인계의 문제점이 발생하고.
경험이 많지 않은 신입사원 등이 유지보수 하기에는
이러한 설정 등에 대해서 
제대로 이해하지 못하고 접근하는게 어찌보면 당연할지도..

아키텍트로서 
이슈사항에 대해 접근할 때는 
전체적인 관점을 가지고 접근해야 한다는 점.. 
다시한번 remind... 

덧글

댓글 입력 영역