본문 바로가기
대한상공회의소 스마트팩토리 교육/웹 어플리케이션 개발

[웹 어플리케이션 개발] 프로그래밍 환경 구성 «수업-3» : 아파치와 톰캣 연동하기

by 나는영하 2022. 5. 27.

※ 주의사항 

본 블로그는 수업 내용을 바탕으로 제가 이해한 부분을 정리한 블로그입니다.
본 내용을 참고로만 보시고, 틀린 부분이 있다면 지적 부탁드립니다!

감사합니다😁

 


아파치와 톰캣 연동


안녕하세요!!

오늘은 지난시간에 배운 정적인 데이터를 처리하는 웹서버인 아파치(Apache)와 동적인 데이터를 처리하는 웹서버인 톰캣(Tomcat)을 연동하는 방법을 알아보겠습니다.

 

대략적으로 설명을 하면 웹 서버로 사용자가 요청을 보내면 제일 먼저 아파치로 넘어가서 톰캣으로 동적인 데이터만 넘겨준다고 합니다. 정적인 데이터는 본인(아파치)이 처리 합니다.

 따라서 사용자는 포트번호(8080)를 사용하지 않고 일반적으로 LocalHost ip 주소만 입력을 하면 동적인 웹 서버인 톰캣까지 사용할 수있습니다. → 연동을 하는 이유!!!

 (아파치의 포트번호는 80이지만 Default값이기에 포트번호를 입력하지 않아도 됩니다 ^^) 

 

 

1.  아파치와 톰캣 연동하기!

1-1.  mod_jk.so 다운 및 설치

✔ 아래의 경로에서 mod_jk를 다운받습니다(x64)

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

 

Apache VS16 binaries and modules download

 

www.apachelounge.com

64비트 다운!

✔ [Apache_HOME] / modules 디렉토리 안에 해당 파일 저장

c:/Apache24/modules 에 mod_jk.so 파일 저장

 

✔ [Apache_HOME] / conf 디렉토리에 "workers.properties" 파일 생성 및 내용 추가

AJP(Apache Jserver Protocol)

ajp13 및 Port 8009는 톰캣과 아파치 연동과 관련된 내용에 해당합니다. 

(한번만 하고 넘어가는 스텝이기 때문에 자세한 내용은 Skip)

 


1-2.  httpd.conf 및 httpd-vhosts.conf 파일 수정

✔ [Apache_HOME] / conf / httpd.conf 파일 내에 아래의 내용 추가

# mod_jk 모듈 설정
LoadModule jk_module modules/mod_jk.so
JkworkersFile conf/workers.properties
JkMount /* study
JkLogFile logs/mod_jk.log
JkLogLevel info
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] “
JkRequestLogFormat "%w %V %T“

위에서 연동하기 위해 설치해두었던 modules 폴더 내의 라이브러리를 찾아서 연결하라는 내용

 

✔ [Apache_HOME] / conf / extra / httpd-vhost.conf 파일 내에 아래의 내용 추가 

<VirtualHost *:8009>
ServerAdmin admin
DocumentRoot "C:[프로젝트 디렉토리]"
ErrorLog "logs/example-project-error.log"
CustomLog "logs/example-project-access.log"
</VirtualHost>

큰 따옴표는 다시 입력하고, 역슬래시는 슬래시로 변경!! → ppt에서 코드를 복붙할때 주의 해야 할 사항! 

 

※ 가상 호스트(VirtualHost)

동일한 서버 내에 여러 도메인을 가진 웹 서버를 구축해서 서비스 할 때 사용한다.(IIS 등 다른 웹 서버에서도 사용되는 개념) 

여기서는 연동하기 위한 포트번호인 8009를 가상 호스트로 지정하는 과정으로 생각이 됩니다. 

 


1-3. 연동 확인!

✔ 아파치와 톰캣 모두 실행

아파치와 톰캣 실행방법은 위의 명령프롬프트의 명령어를 확인해주세요. 설치파일이 설치되어있지 않다면 지난 글을 참고 바랍니다 ^^;

 

✔ 웹 브라우저의 주소창에 LocalHost ip주소와 WebServlet 주소 입력

지난번에는 hellojava의 서블릿 테스트 예제를 웹 브라우저에서 실행하기 위해서는 톰캣의 포트번호까지 입력해주었는데 연동하고 나서는 포트번호를 생략해도 정상적으로 열리는것이 확인 됐습니다. 

 

연동 전 주소 : 127.0.0.1:8080/hellojava

연동 후 주소 : 127.0.0.1/hellojava

댓글