아파치 톰캣 proxy ajp 모듈로 연동시키기

이번 포스팅은 mod_jk라는 어려운 아파치 전용 모듈을 사용하는 것이 아닌, 훨씬 간단하게 아파치 웹서버로 들어오는 특정 도메인에 대한 모든 요청을 톰캣이 처리한 뒤 그 결과를 돌려받을 수 있게 만드는 연동방법을 알아보겠습니다.

기본적으로 CentOS / Apache 2.2+ / Tomcat 8+ 환경이며, 설치가 모두 되어있음과 VirtualHost에 대한 conf 설정파일이 httpd.conf 내에 이미 Include되어있다고 가정합니다. 또한 톰캣에 이미 프로젝트를 war파일로 배포한 뒤 extracted되었음을 가정한 상태에서 설명을 진행하겠습니다.

이 포스트에서는 구체적인 예제로, counterjp.fureweb.com 으로의 요청을 아파치 웹서버에서 감지했을 때, 어떻게 톰캣으로 연동한 결과를 받아올 수 있는지 전체 과정에 대해 기술해 보도록 하겠습니다.

 

1. VirtualHost 설정 파일에 다음 내용 추가 후 아파치 재시작

저는 이름기반 가상호스트로 모든 설정을 처리하고 있습니다. 그리하여 아래와 같은 형태로 설정을 진행합니다.

<VirtualHost *:80>
ServerName counterjp.fureweb.com
ErrorLog logs/counterjp.fureweb.com-error_log

ProxyPass / ajp://counterjp.fureweb.com:8009/
ProxyPassReverse / ajp://counterjp.fureweb.com:8009/
</VirtualHost>

 

2. 톰캣 server.xml 파일에 다음 내용 추가 후 톰캣 재시작

</Engine> 바로 위에 지금의 내용을 추가해 주세요. war파일과 프로젝트 루트 디렉토리명은 counter라고 가정합니다.

<Host name="counterjp.fureweb.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context Path="/" docBase="counter" reloadable="true" />
<Alias>counterjp.fureweb.com</Alias>
</Host>

 

3. 브라우저에서 요청 수행

웹브라우저에서 http://counterjp.fureweb.com을 입력 후 웹서버에 요청을 보내시면, 톰캣에서 만들어 낸 웹페이지를 볼 수 있게 됩니다.

※ 이미 톰캣 8 버전에서는 ajp에 대한 설정이 8009번 포트로 되어있기 때문에 이와 같이 간단한 과정만 거쳐도 연동처리를 할 수 있게 됩니다.

 

결론

이전까지의 아파치와 톰캣 연동을 진행할 때에는 mod_jk 모듈을 이용하여 연동하는 방법 밖에 알지 못했었으나, proxy를 이용하여 WAS에서 문서를 생성한 결과를 이렇게 받아올 수 있다는 방법을 깨닫게 되어 매우 기쁘게 생각합니다 -_-; 어쨌든, 톰캣 하나만 사용하는 서버 환경이라면 이런 행위들이 필요 없지만, 일반적으로 PHP나 그 외 다른 언어와 혼용해야하는 요즘 서비스 환경에서는 반드시 숙지해야하는 부분이라고 생각하여 이렇게 정리 겸 포스팅을 진행하게 되었습니다.

apxs를 통해 반드시 모듈을 생성하고 어렵게 진행해야하는 mod_jk 대신, ProxyPass와 ProxyPassReverse 설정 딱 두줄만 더 추가해서 간단하게 톰캣 연동을 처리해보세요! 요청에 대해 좀 더 세분화 하게 된다면 완전히 공개되어야하는 정적인 데이터들은 아파치로만 서비스하고 나머지 동적 생성이 필요한 부분은 WAS에서 처리하도록 요청별로 ProxyPass – ProxyPassReverse 설정 해 준다면 훨씬 더 깔끔하고 강력하게 사용하실 수 있을 것으로 생각됩니다!

You may also like...

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.