TokyoAJ

도쿄아재

SERVER 2024.12.16

Apache + Tomcat 연동 구축


Apache와 Tomcat을 통합하려면, mod_proxy 및 mod_proxy_ajp 모듈을 Apache에 활성화하고, Apache의 VirtualHost 설정에서 Tomcat과의 연결을 설정합니다. 일반적으로 ProxyPass 및 ProxyPassReverse 지시어를 사용하여 요청을 Tomcat으로 전달하도록 구성합니다. 이로써 Apache는 정적 콘텐츠를 처리하고 동적 콘텐츠는 Tomcat에서 처리하게 됩니다. 이 설정은 Apache와 Tomcat 간의 효과적인 협력을 가능하게 합니다.



JAVA 설치

sudo apt install openjdk-17-jre-headless


Tomcat10 설치 위치로 이동합니다.

cd /usr/share


Tomcat10 다운로드

sudo wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.16/bin/apache-tomcat-10.1.16.tar.gz


압축 해제합니다.

sudo tar -zxvf apache-tomcat-10.1.16.tar.gz


폴더 이름을 변경합니다.

sudo mv apache-tomcat-10.1.16 /usr/share/tomcat10


포트오픈

sudo iptables -I INPUT 5 -i ens3 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -I INPUT 5 -i ens3 -p tcp --dport 8080 -m state --state NEW,ESTABLISHED -j ACCEPT


서버실행 확인

sudo sh /usr/share/tomcat10/bin/startup.sh
sudo sh /usr/share/tomcat10/bin/shutdown.sh


apache2 설치

sudo apt-get install -y apache2


mod-jk 설치

sudo apt-get install -y libapache2-mod-jk


JAVA설치 정보 조회

root@localhost:~# which java
/usr/bin/java
root@localhost:~# readlink /usr/bin/java
/etc/alternatives/java
root@localhost:~# readlink /etc/alternatives/java
/usr/lib/jvm/java-17-openjdk-amd64/bin/java


/etc/libapache2-mod-jk/workers.properties 수정

sudo nano /etc/libapache2-mod-jk/workers.properties

아래와 같이 수정

workers.tomcat_home=/usr/share/tomcat10
workers.java_home=/usr/lib/jvm/java-17-openjdk-amd64/bin/java


톰캣 server.xml 파일 수정

sudo nano /usr/share/tomcat10/conf/server.xml
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" secretRequired="false" URIEncoding="UTF-8" address="0.0.0.0"/>
<Engine name="Catalina" jvmRoute="ajp13_worker" defaultHost="localhost" >
<Context Path="/" docBase="mucast_www" reloadable="true" />


Apache /etc/apache2/sites-enabled/000-default.conf 수정

sudo nano /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
ServerName localhost
ServerAdmin webmaster@localhost
DocumentRoot /usr/share/tomcat10/webapps/mucast_admin/
JkMount /* ajp13_worker
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory "/usr/share/tomcat10/webapps/mucast_admin">
AllowOverride none
Require all granted
</Directory>
</VirtualHost>


apache2.conf 파일에 맨 아래에 아래 내용 추가

sudo nano /etc/apache2/apache2.conf
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
# Where to put jk shared memory
JkShmFile /var/log/apache2/mod_jk.shm
# Where to put jk logs
JkLogFile /var/log/apache2/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel info
# Select the timestamp log format
JkLogStampFormat "[ %a %b %d %H:%M:%S %Y ] "


sudo nano /etc/apache2/mods-enabled/jk.conf 파일수정

주석처리
#JkWorkersFile /etc/libapache2-mod-jk/workers.properties


서버재시작

sudo sh /usr/share/tomcat10/bin/shutdown.sh
sudo sh /usr/share/tomcat10/bin/startup.sh
sudo service apache2 restart