일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 중복 로그인
- 펀드
- iText
- apache
- eclipse jquery
- org.apache.commons.net.ftp
- mod_jk
- Divx 플레이어
- jQuery
- JavaScript
- HelloWorld
- apache 와 tomcat 연동
- 원격 제어
- mod_proxy_ajp
- AWS
- 재태크
- 플러그인
- javax.mail
- Amazon Web Service
- eclipse query validate
- AWS Architecture
- 이클립스
- tomcat
- defaultContext
- WTP
- AWS Web Console
- Today
- Total
비얌
Apache + Tomcat 연동 기본 개념 본문
Apache 와 Tomcat 의 연동은 이제는 평범하다 못해 진부하게 되었다.
그런데 조금 웃긴 사실은 이러한 연동에 대한 기본 개념을 정확히 알지는 못하고 Blog에 있는 내용을 따라하다 보니 실제로 연동이 오류가 났을 때에는 블로그 글을 보고 다시 처음부터 해보는 경우가 많다. 가령 디렉토리명을 apache2.2에 Tomcat 7.0으로 설치했다가 apache2, tomcat7로 했다가 apache_real, tomcat_real 으로 한다던지 이다...
뭐 딱히 위에 방식이 잘못된 것은 아니지만 다음에 인수 받는 사람이 있으면 부끄러워지는 소스가 된다....
Apache와 Tomcat의 연동 방식은 여러가지가 있으나, 가장 기본적으로 많이 사용하는 것은 mod_jk 이다. 그 다음으로 유명한 것은 mod_rewrite을 이용한 연동 방식, Proxy_ajp를 이용한 연동이 있다.
문제는 이것들이 모두 상황에 맞게 혹은 숙련도에 맞게 설정을 해야 한다는 것이다...
그런데 가장 기본적인 것인 Apache와 Tomcat의 연동은 지정된 port로 통신을 하여 연동을 한다는 것이다. mod_jk를 쓰건 ajp를 쓰건 localhost:8009를 쓴다는 것이다...(꼭 8009일 필요는 없다. 하지만 하도 많이 쓰니 이 port가 대표성을 가져버린 것인지 그걸 쓰길 바라는 개발자들이 있었는지는 모르겠다.)
또한 연동 시, so 파일인 확장 프로그램을 쓴다는 것이다.즉, mod_jk는 mod_jk*.so를 쓰고, ajp는 mod_proxy_ajp.so 쓴다는 것이다. 해당 파일이 [apache home directory]/modules 밑에 없다면 당연히 동작이 되지 않는다. mod_jk*.so 파일이야 다른 곳에 있는 것을 받아서 쓴다지만 ajp.so 파일은 apache 컴파일시, 옵션으로 넣지 않았다면 추가적으로 컴파일을 해주면 된다.(물론 쉽지 않다.)
정리하자면 Apache는 기본적으로 port로 연결할 수 있는 프로그램 모듈이 있어야 하고 해당 port에 대하여 Tomcat은 받을 수 있어야 한다는 것이다.
ps 1. 해당 설정하는 법은 따로 한번 정리해 보겠다...
ps 2. 가끔 회사에 신입 혹은 경력이 어느정도 있는데에도 서버 셋팅을 하라고 시키면 사고를 치는 경우가 많다. 신입은 그렇다치지만 경력이 5년도 넘은 사람이 사고를 치면 좀 수습이 안된다.(고집은 있어서 블로그 보고 했다고 해당 블로거를 두둔하면서 증거로 블로그 글을 보여주기도 한다.) 이들에게 계속 설명하다가 보면 앵무새가 된 듯한 느낌이 들기도 한다. 그런데 개발자이니깐 서버는 몰라도 되니깐, 인프라 측면의 성격이 강하니 내 분야가 아니다라고 말하는 후배들을 보면 어떻게 대답해야 할지 당혹스럽다. 그들에게 물어보고 싶다. 넌 Web 개발자, 서버 API 개발자 이면서 도대체 어디서 연습삼아 개발하는지..