[Web] Apache와 Tomcat을 mod_jk로 연동하기.

Apache Tomcat 연동이유

Apache는 정적파일(html, js, 이미지 등)을 처리해주고

Tomcat은 동적파일(jsp 등)을 처리해준다.



위 그림에서 보듯이 이 둘을 연동해주면 정적파일은 Apache로 처리되고 동적파일은 Tomcat이 처리해줌으로써 클라이언트에게 퍼포먼스가 많이 향상된다. 



다운로드

Mod_jk 파일 다운로드 

https://www.apachelounge.com/download/

mod jk 다운로드


위 사이트에서 자기 아파치 버전에 맞는 mod_jk.so 파일을 다운받으면된다. 


Tomcat은 아무거나 깔아도된다.


다 정상적으로 깔았고 실행되면

localhost는 아파치가 처리한 페이지가 뜨고

localhost:8080 은 톰캣이 처리한 페이지가 뜰것이다.



설정


먼저 다운받은 mod_jk를  Apache홈에있는 module 폴더에 넣어주면된다.



그리고 conf폴더에 가서

mod_jk.conf 파일과

workers.properties 파일을 만들어 주자


파일형식이 properties가 맞는지 확인하자!



workers.properties편집




worker은 mod_jk를 실행시키는 일꾼이라고 생각하면된다.  그 일꾼을 설정하는 것이다. worker.list에 여러명의 일꾼을 정할수있다. 그래서 로드밸런싱 기능을 사용이 가능하다.


그리고 그 밑에 worker.일꾼이름.port등으로 여러가지 설정을 해주면된다.  

위 설정은  프로토콜은 ajp13을 사용하고 port는 8009을 사용, host는 localhost이다.


ajp는 웹서버에 들어오는 요청을 위임하는 바이너리 프로토콜이다. 즉 tomcat으로 위임을 해주는 프로토콜이라 생각하면된다.

ajp는 기본으로 8009포트를 사용한다.



mod_jk.conf 편집




JKLogFile은 로그 찍어주는 파일을 설정한것이고 뒤에는 파일명을 설정한것이다.

JKLogLevel은 로그레벨 설정인데. 그 중 info로 한것이다.  log 레벨은 debug, info, error가 있다.


그 밑이 중요한데

JKWorkersFile로 workers.properties 파일위치를 정해주고

JKMount로 어떤 경로로 왔을때 특정 worker로 실행시킬수 있다.  뒤에 /* test로 써있으므로 모든 경로로 오는 것은 test가 처리하게 해주는것이다.


사실상 이 둘이 가장 중요하므로 이것만 설정해줘도 돌아가는데는 상관없을거 같다. 하지만수준높은 개발자가 되고싶다면 로그를 중요시하자.



httpd.conf 편집



httpd.conf 파일에서 mod_jk를 LoadModule에 추가를 하고.

 


맨밑으로 이동해서 jk_module을 정의해준다. 그리고 Apache를 다시 시작해주면 된다.



테스트

URL에 localhost를 치면 아파치가 처리한 정적파일이 나올것이다.


URL에 localhost/docs 를 치면 Tomcat docs창이 뜰것이다. 즉 동적파일을 처리해준것이다.




그림출처 : http://f10024.tistory.com/7

댓글

Designed by JB FACTORY