2012/11/27 08:10

apache + weblogic 연결시 고려사항. Server/WAS



현재 apache 와 웹로직을 연결해서.
web server + was 체제가 되도록 구성해놓고 통합테스트를 기다리고 있다.

그런데, 구성을 마치고 테스트를 하던 중.
생각하지 못한 중대한 결함을 발견하였다. 

원인은 아래와 같다.

요청이 이전에 was로 바로 들어갈 때는, 
이미지를 바로 was에서 찾아서 사용했었다. 

그런데, apache를 연결해서 apache에서 was로 연결되도록 설정하다 보니.
이미지를 web server에서 찾아야 할지, was에서 찾아야 할지,
선택을 해야 하는 상황이 되었다. 

즉, 처음부터 이미지, js, html 등은 web server 기능에 충실하게
apache로 빼서 처리하도록 구성하였다면 문제가 되지 않았을 것인데, 
was내 프로젝트에서 사용하도록 구성되어 있었기 때문에
was에 바로 올렸을때는 문제가 없던것이 apache를 연결하면서 바로 문제가 되어 버렸던 것.

apache에서 MatchExpression 으로 was로 넘길 확장자를 설정할 수 있는데,
보통 spring을 사용하고, servlet을 사용하니, .do, .action, .jsp 이런 파일들을 설정한다.
따라서, 이미지의 경우, web server에서 처리하든, was에서 처리하든
한 곳에서 처리해야 하는데,
우리 프로젝트의 경우, 가상디렉터리를 apache에 설정해서 이미지를 올리고 있고, 
또 was 위에도 web에서 사용하는 이미지가 있기 때문에.. 
한쪽에서만 이미지를 처리하도록 유도할 수 없는 상황이다. 

해결방법은, 
일단. web server를 사용하는데 충실하게, 웹쪽에 올려진 이미지, js, html 등을 web server로 내리는 방법.
그런데, 통테를 앞두고 있는 현재로서는 너무 늦어진 감이 있다;; 
그래서 차선책으로.. 
apache 설정 파일(httpd.conf)에 보면 DocumentRoot 라는 설정이 있다. 
이 설정위치를 내가 was에 배포한 소스 위치로 설정해 놓으면.
apache는 기본적으로 해당 위치의 모든 이미지들을 띄워준다. (80포트 위에.)
위와 같이 설정하면
web상의 이미지는 DocumentRoot 설정으로 해결하고.
가상디렉터리 이미지는 MatchExpression 에 이미지 설정을 제외해서
apache에서 찾도록 설정해주면 된다. 

이로서,
얼마나 초기에 개발환경 설정에 대한 고민이 중요한지를 
다시한번 체감하게 되었고.
내 능력이 얼마나 부족한지를 다시한번 깨닫게 되는 기회가 되었다.. 

암튼, 이렇게 또 하나 알아가는 것이겠지만.
좀 씁쓸하다.. 

----
참고로 DocumentRoot를 변경해서 접속하려고 하면
접속시에 권한이 없다고 나온다. 
그때는 설정파일(httpd.conf)에서 아래 설정을 변경해 준다.

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all -> Allow from all
</Directory>

덧글

댓글 입력 영역