Apache HTTP Server (Apache2)와 Apache Tomcat은 모두 서버 소프트웨어지만, 각기 다른 목적과 사용 사례를 가지고 있습니다. Apache HTTP Server는 주로 정적인 콘텐츠(HTML 파일, 이미지 등)를 제공하는 데 사용되는 웹 서버 소프트웨어입니다. 반면에 Apache Tomcat은 Java Servlet과 JavaServer Pages(JSP)를 실행하는 서블릿 컨테이너입니다. 이 두 소프트웨어를 함께 사용하는 경우도 있지만, 주로 Apache HTTP Server와 Tomcat을 연동하여 Java 웹 애플리케이션을 실행하는 방법에 대해 설명하겠습니다.
Apache HTTP Server와 Apache Tomcat 연동하기
Apache HTTP Server와 Apache Tomcat을 연동하여 사용하려면 일반적으로 mod_jk
모듈을 사용합니다. 이 모듈은 Apache HTTP Server와 Tomcat 간의 통신을 도와주는 역할을 합니다.
1. 필요한 패키지 설치
먼저 libapache2-mod-jk
패키지를 설치합니다.
sudo apt update
sudo apt install libapache2-mod-jk
2. mod_jk
모듈 설정
mod_jk
설정 파일을 생성하고 편집합니다.
sudo nano /etc/apache2/mods-available/jk.conf
다음과 같이 설정을 추가합니다:
# Load mod_jk module
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile /etc/apache2/workers.properties
# Where to put jk logs
JkLogFile /var/log/apache2/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE,
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat set the request format
JkRequestLogFormat "%w %V %T"
# Mount your applications
JkMount /myapp* worker1
3. workers.properties
설정
workers.properties
파일을 생성하고 편집합니다.
sudo nano /etc/apache2/workers.properties
다음과 같이 설정을 추가합니다:
# Define 1 real worker using ajp13
worker.list=worker1
worker.worker1.type=ajp13
worker.worker1.host=localhost
worker.worker1.port=8009
위 설정에서 worker.worker1.port
는 Apache Tomcat이 실행 중인 포트번호로 변경해야 합니다.
4. Apache2 재시작
설정이 완료되면 Apache2를 재시작하여 변경 사항을 적용합니다.
sudo systemctl restart apache2
Apache Tomcat 설정
Apache Tomcat의 경우, AJP(Advanced Java Protocol) 프로토콜을 사용할 수 있도록 설정해야 합니다.
1. Tomcat server.xml
수정
Tomcat의 server.xml
파일을 열고 AJP 연결을 추가합니다.
sudo nano /opt/tomcat/conf/server.xml
다음과 같이 Connector를 추가합니다:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
2. Tomcat 재시작
Tomcat을 재시작하여 변경 사항을 적용합니다.
sudo systemctl restart tomcat
테스트
이제 Apache HTTP Server가 Apache Tomcat과 연동되었는지 확인할 수 있습니다. Apache HTTP Server가 실행 중인 호스트의 웹 브라우저에서 http://localhost/myapp
또는 해당 웹 애플리케이션의 URL로 접속하여 Apache Tomcat이 제공하는 동적 콘텐츠에 접근할 수 있어야 합니다.
이와 같은 방식으로 Apache HTTP Server와 Apache Tomcat을 연동하여 Java 웹 애플리케이션을 실행할 수 있습니다.