오늘은 아파치와 톰캣을 연동할 것이다.
Why 아파치와 톰캣을 연동하니?
톰캣은 WAS이지만 Web 서버의 기능도 갖고 있어서 사용하는데 문제가 생기지는 않지만,
톰캣의 Web 서버 기능은 아파치보다 처리 속도가 느리기 때문에 정적인 페이지는 아파치가 처리하고,
동적인 페이지는 톰캣이 처리할 수 있도록 해주기 위해 아파치와 톰캣을 연동한다.
이렇게 연동시키게 되면 부하를 분산시킬 수 있다.
아파치(Apache)를 설치해보자!!
1. 설치 전 패키지 업데이트를 먼저 진행한다.
# 패키지 업데이트 명령어
apt-get update
2. 업데이트가 끝나면 아파치를 설치한다.
# 아파치 설치 명령어
apt-get install apache2
설치 중간에 계속 할거니? 라고 물어보면 Y를 입력하여 설치를 계속 진행한다.
3. 설치가 끝났으면 확인을 해보자.
# 아파치 버전 확인 명령어
apache2 -v
netstat은 시스템의 네트워크 연결 목록(tcp, udp, 소켓 연결)을 보여주는 유틸리티이다.
netstat을 사용하여 아파치가 정상적으로 동작하고 있는지 화인한다.
# 아파치 네트워크 연결 목록 확인 명령어
netstat -ntlp | grep apache2
4. 다음으로 아파치 포트로 접속할 수 있도록 방화벽에 등록한다.(80은 아파치의 기본 포트이다.)
# 방화벽에 아파치 포트 허용하도록 등록하는 명령어
ufw allow 80/tcp
# 아파치 실행 명령어
/etc/init.d/apache2 start
또는
service apache2 start
7. 아파치(Apache2)와 톰캣(Tomcat8)을 연동하기 위해 연동커넥터인 mod_jk를 설치한다.
# mod_jk 설치 명령어
apt-get install libapache2-mod-jk
8. /etc/apache2/ 경로에 properties 파일을 생성한다.
#workers.properties 파일 생성 명령어
nano /etc/apache2/workers.properties
#properties 파일에 입력할 내용
workers.tomcat_home=톰캣 설치 경로
workers.java_home=jdk 설치경로
# Define 1 real worker ajp13
worker.list=임의의 이름
# Set properties for tomcat1 (ajp13)
# 포트는 tomcat server.xml 파일 AJP/1.3 Connector의 Port
worker.임의의 이름.port = 포트
worker.임의의 이름.host = 톰캣서버 아이피 주소
# apache + tomcat 통신 프로토콜
worker.임의의 이름.type = ajp13
worker.임의의 이름.lbfactor = 1
workers.tomcat_home=/usr/share/tomcat8
workers.java_home=/usr/lib/jvm/java-8-openjdk-amd64
# Define 1 real worker ajp13
worker.list=tomcat1
# Set properties for tomcat1 (ajp13)
# 포트는 tomcat server.xml 파일 AJP/1.3 Connector의 Port
worker.tomcat1.port = 8009
worker.tomcat1.host = 13.125.126.162
# apache + tomcat 통신 프로토콜
worker.tomcat1.type = ajp13
worker.tomcat1.lbfactor = 20
내용을 다 입력했으면 Ctrl + X → Y → 엔터 를 입력하여 저장한다.
10. 다음으로 jk.conf 파일을 수정한다.
#jk.conf 파일 여는 명령어
nano /etc/apache2/mods-available/jk.conf
아래 사진의 빨간색으로 표시된 부분을 찾아 주석으로 막아준다.
그 후 아래 사진처럼 내용을 입력한다. 이렇게 하는 이유는 /etc/apache2/ 경로에 생성한 workers.properties로부터 설정 정보를 가져오기 위해서이다.
내용을 입력한 후 Ctrl + X → Y → 엔터 를 입력하여 저장한다.
11. 이제 000-default.conf 파일을 수정해보자.
#000-default.conf 파일 여는 명령어
nano /etc/apache2/sites-available/000-default.conf
빨간색으로 표시된 DocumentRoot /var/www를 주석처리한다. 그리고 아래에 톰캣의 webapps 아래 실행할 웹 프로젝트 경로를 적어준다.
webapps아래에 BOMBEE 라는 폴더에 프로젝트를 배포하기 때문에 DocumentRoot /var/lib/tomcat8/webapp/BOMBEE라고 입력해줬다.
(ROOT폴더에 웹 프로젝트를 배포하려면 DocumentRoot /var/lib/tomcat8/webapp/ROOT/ 라고 입력하면 된다.)
JkMount /* tomcat1 부분은 모든 URL(/*)을 톰캣에게 바인딩하는 부분이다. tomcat1은 workers.properties에 입력한 연동할 톰캣의 이름이다.
만약 톰캣에 배포된 프로젝트가 여러 개이고 특정 프로젝트만 URL을 바인딩 해야 한다면, /* 부분을 수정해주면 된다.
예를 들어 배포된 프로젝트가 pro1, pro2 이렇게 있는데 pro1만 바인딩하려면 JkMount /pro1/* tomcat1 이렇게 수정하면 된다.
12. 다음으로 수정해야 할 파일은 톰캣의 server.xml 파일이다.
#server.xml 파일 여는 명령어
nano /etc/tomcat8/server.xml
빨간색으로 표시된 부분의 주석을 없애준다.
13. 아파치와 톰캣을 재시작한다.
#아파치와 톰캣 재시작 하는 명령어
service apache2 restart
service tomcat8 restart
14. 브라우저에서 확인해본다.
서버에 배포된 웹 프로젝트를 실행하기 위해 서버IP주소:8080을 입력한다.
주소창에서 8080을 지우고 접속해도 웹 프로젝트가 실행되는 것을 확인할 수 잇다.
여기까지 되면 정상적으로 연동된것이다.
끝!
[출처]
http://sisiblog.tistory.com/12
http://all-record.tistory.com/188
'AWS(Amazon Web Services)' 카테고리의 다른 글
AWS 사용하기 - 5(MySQL 설치하기) (0) | 2017.12.29 |
---|---|
AWS 사용하기 - 4(Tomcat 설치하기) (0) | 2017.12.29 |
AWS 사용하기 - 3(Java 설치하기) (0) | 2017.12.28 |
AWS 사용하기 - 2(Xshell 이용하여 Ubuntu 서버 접속하기) (0) | 2017.12.27 |
AWS 사용하기 - 1(인스턴스 생성하기) (0) | 2017.12.27 |