본문 바로가기
BackEnd/Server

아파치(Apache2) + 톰캣(Tomcat8.5) 연동하기

by 푸고배 2020. 3. 5.

셋팅 환경


- 서버 : AWS EC2

- Apache Version : Apache/2.4.29 (Ubuntu)

- Tomcat Version : apache-tomcat-8.5.51


1. Apache2 설치


sudo apt-get install apache2


apache2의 실행과 종료, 재실행 명령어는 다음과 같다.

apache2가 잘 동작하는지 확인하고 다음 순서를 진행한다.


sudo /etc/init.d/apache2 start


sudo /etc/init.d/apache2 stop


sudo /etc/init.d/apache2 restart


Apache2는 기본으로 80 포트를 사용하며 chorme에 http://[사용자 ip]를 통해 Apache2 설치를 확인 할 수 있다.

정상적으로 설치 후 Apache2를 실행하면 다음과 같은 화면이 뜬다.




2. Tomcat 설치


Tomcat을 설치할 폴더로 이동 후 다음과 같은 명령어를 입력한 후


sudo wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.51/bin/apache-tomcat-8.5.51.tar.gz


만약 다음과 같은 오류가 나면 


 ERROR: cannot verify archive.apache.org's certificate, issued by ‘CN=Sectigo RSA Domain Validation Secure Server CA,O=Sectigo Limited,L=Salford,ST=Greater Manchester,C=GB’:

  Unable to locally verify the issuer's authority.


아래의 명령어를 입력해준다.


sudo wget --no-check-certificate https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.51/bin/apache-tomcat-8.5.51.tar.gz


그 다음 다운 받은 .tar.gz 파일의 압축을 풀어준 후 삭제한다.

tar -xvf apache-tomcat-8.5.51.tar.gz


rm apache-tomcat-8.5.51.tar.gz



Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

At least one of these environment variable is needed to run this program


위와 같은 문구가 출력된다면 Java 설치가 안되어 있거나, 환경변수 설정이 안되어 있으므로 아래 게시물을 통해 Java를 먼저 설치해준다.


JAVA 설치하기https://doqtqu.tistory.com/104


만약 톰캣의 설치가 문제없이 완료되었다면 아래의 명령어로 tomcat을 실행하고 http://[사용자 ip]:8080 를 통해서 톰캣의 실행을 확인한다. 실행에 성공하면 아래와 같은 고양이 페이지가 뜬다.


3. mod_jk 설치


mod_jk 설치 이전에 apache2와 tomcat을 먼저 깔아줘야 한다.


sudo apt-get install libapache2-mod-jk


4. workers.properties 생성하기


다음 명령어를 통해서 worker 환경설정을 추가한다.


sudo vi /etc/apache2/workers.properties


생성된 파일에 다음과 같이 셋팅한다.


workers.tomcat_home = tomcat 설치 경로 (2번 apache-tomcat-8.5.21의 경로)

workers.java_home = jdk 설치 경로 (보통  /usr/lib/jvm/경로에 있다.)


worker.list = [worker 이름] (사용자 지정 아무거나)

worker.[worker 이름].port = 8009

worker.[worker 이름].host = ip 주소 (기본 localhost)

worker.[worker 이름].type = ajp13


아래는 예시 화면이다.


5. jk.conf 수정


다음 명령어를 통해서 4번에서 수정한 workerfile 경로를 등록한다.


sudo vi /etc/apache2/mods-available/jk.conf


아래와 같이 기존의 JKWorkersFile ~ 을 주석처리하고 


JkWorkersFile /etc/apache2/workers.properties


다음과 같이4번에서 수정한 workerfile의 경로를 입력한다.




6. 000-default.conf 파일 수정


4번에서 만든 worker를 이용해 tomcat의 경로를 root 경로로 root로 설정한다.


sudo vi /etc/apache2/sites-available/000-default.conf


기존의 DocumentRoot ~ 를 주석처리하고 tomcat의 webapps 경로를 입력한다.

JKMount를 통해서 worker를 연결한다. (4번에서 등록한 worker의 이름을 입력하면 된다.)




7. tomcat의 server.xml 수정


2번의 tomcat 설치 경로로 이동해 다음과 같은 명령어를 입력한다.


vi conf/server.xml


아래와 같이 <Connecter port="8009" ~>의 주석을 풀어준다.




톰캣에서 8.5.51와 9.0.31 버전에서 tomcat-apache 연동 설정을 기존대로 구성 시 연동 실패(무한로딩, 403에러 발생)가 발생 하며 AJP 기본값이 루프백 주소를 수신하도록 변경되어 수정해주지 않을 시 503 에러가 발생한다고 한다.

따라서 address와 secretRequired를 위와 같이 추가해주어야 무한로딩을 피할 수 있다.

(자세한 내용은 다음 블로그 참고 https://nirsa.tistory.com/131)


8. Apache2, tomcat 실행


실행 순서는 apache2 -> tomcat 순으로 한다.


sudo /etc/init.d/apache2 start


톰캣 설치 경로로 이동한 후


sh bin/startup.sh 


로 톰캣을 실행 시켜준다.


그 후 http://[서버 ip]/로 이동 시 apache2를 통해 tomcat이 실행된다.


https://all-record.tistory.com/188

https://nirsa.tistory.com/131


반응형

댓글