1. 연동 커넥터 mod_jk 설치
톰캣과의 연동을 위해 mod_jk를 설치한다
sudo apt-get install libapache2-mod-jk
2. workers.properties 파일 생성
다음으로 /etc/apache2/ 경로에 properties 파일을 생성한다.
(아래 명령어 입력시 workers.properties 파일 생성됨)
1) sudo nano /etc/apache2/workers.properties
생성한 workers.properties에 아래의 내용을 입력한다.
workers.tomcat_home=톰캣 설치경로
workers.tomcat_home=/usr/share/tomcat9
workers.java_home=jdk 설치경로
workers.java_home=/usr/lib/jvm/java-8-openjdk-amd64
# Define 1 real worker ajp13
worker.list=임의의 이름
# Set properties for tomcat1 (ajp13)
worker.임의의 이름.port = 포트 # tomat server.xml 파일 AJP/1.3 Connector의 Port 입력
worker.임의의 이름.host = 톰캣서버 아이피 주소
worker.임의의 이름.type = ajp13 # apache + tomcat 통신 프로토콜
worker.임의의 이름.lbfactor = 1
2) 완성예시
workers.tomcat_home=/usr/share/tomcat9
workers.java_home=/usr/lib/jvm/java-8-openjdk-amd64
# Define 1 real worker ajp13
worker.list=tomcat1
# Set properties for tomcat1 (ajp13)
worker.tomcat1.port = 8009
worker.tomcat1.host = 13.209.67.208
worker.tomcat1.type = ajp13
worker.tomcat1.lbfactor = 1
3. jk.conf 파일 수정
명령어를 실행하여 jk.conf 파일을 연다.
1) sudo nano /etc/apache2/mods-available/jk.conf
2) jk.conf 파일에서
JkWorkersFile /etc/libapache2-mod-jk/workers.properties 으로 표시된 부분을 찾아준다.
그 부분을 주석(#)으로 막아주고 바로 아래 내용을 입력한다.
JkWorkersFile /etc/apache2/workers.properties
이렇게 하는 것은 /etc/apache2/ 경로에 생성한 workers.properties로부터 설정 정보를 가져오기
위한 것이다.
4. 000-default.conf 파일 수정
1) 명령어를 실행하여 000-default.conf 파일을 연다
sudo nano /etc/apache2/sites-available/000-default.conf
000-default.conf 파일을 보면 DocumentRoot /var/www 라고 적힌 부분이 있다.
이 부분에 #을 적어 주석으로 변경한다.
그리고 아래에 톰캣의 webapps 아래 실행할 웹프로젝트가 있는 경로를 적어준다.
위에서는 DocumentRoot /var/lib/tomcat8/webapps/
JkMount /* tomcat1 부분은 모든 URL ( /* )을 톰캣에게 바인딩 하는 부분이다.
tomcat1은 workers.properties에 입력한 연동할 톰캣의 이름이다.
만약 톰캣에 배포된 프로젝트가 여러 개이고 특정 프로젝트만 URL을 바인딩 해야 한다면
/* 부분을 수정해 주면 된다.
예를 들어 배포된 프로젝트가 project1, project2 이렇게 있는데
project1만 바인딩 하려면 JkMount /project1/* tomcat1 이렇게 수정하면 된다.
아래와 같이 설정하면
JkMount /*.do tomcat1
url중 .do로오는 request만 tomcat에서 처리한다.
2) 완성예시
아래는 모든 URL을 톰캣이 처리한다고 하고,
톰캣이 처리하지 말아야할 정적 파일들을 지정하였다.
즉 80포트로 처리할지, 8080으로 처리할지를 구분한것이다.
이 부분은 웹서버 아파치와 WAS 톰캣의 역할에 대해 자세히 알아보면 왜 이렇게 구성하였는지 알수 있을 것이다. https://cg-developer.tistory.com/348
1
2
3
4
5
6
7
8
9
10
11
12
|
ServerAdmin webmaster@localhost
#DocumentRoot /var/www/html
DocumentRoot /var/lib/tomcat9/webapps/
JkMount /* tomcat1
SetEnvIf Request_URI "/*.css" no-jk
SetEnvIf Request_URI "/*.jpg" no-jk
SetEnvIf Request_URI "/*.gif" no-jk
SetEnvIf Request_URI "/*.png" no-jk
SetEnvIf Request_URI "/*.html" no-jk
SetEnvIf Request_URI "/*.js" no-jk
|
cs |
현재 ROOT 라는 이름으로 프로젝트 배포하기 때문에
아래와 같이 경로 변경했음
DocumentRoot /var/lib/tomcat9/webapps/ROOT/
5. apache <Directory > 설정에서 막아 둔 폴더 접근 허용하기
sudo nano /etc/apache2/apache2.conf
기본적으로 자신의 웹서버 디렉토리의 접근 권한이 막혀있기 때문에 이 부분을 아래와 같이 허용해줘야 한다.
1
2
3
4
5
|
<Directory /var/lib/tomcat9/webapps/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
|
cs |
5. 톰캣의 server.xml 파일 수정
다음으로 톰캣의 server.xml 파일을 수정해야 한다.
아래 명령어를 실행하여 server.xml 파일을 연다.
sudo nano /etc/tomcat9/server.xml
방향키를 이용해 xml에서 내려가다보면 아래와같이 나오는데 이 코드의 주석을 없애주자
<!-- <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> --!>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
6. ajp 모듈 활성화
sudo a2enmod proxy_ajp
7. 아파치와 톰캣 재시작
sudo service apache2 restart
sudo service tomcat9 restart
8. aws 보안그룹 인바운드 규칙 편집하기
8009번 포트를 추가해서 열어준다.
그러면
http://서버아이피:8080 접속되고
참고사이트:
https://mytory.net/archives/3143
https://all-record.tistory.com/188?category=733055
http://jkkang.net/java/mod_jk/mod_jk_install.html
https://kkamagistory.tistory.com/37
'BackEnd > Aws' 카테고리의 다른 글
우분투에 Maven으로 프로젝트 배포(이클립스 활용) (0) | 2019.09.30 |
---|---|
RDS 처음 생성 설정값들 (0) | 2019.09.29 |
ec2 우분투에 톰캣 설치 (0) | 2019.09.29 |
ec2 우분투에 자바설치 (0) | 2019.09.29 |
aws ec2 웹서버(아파치) 설치 (0) | 2019.09.29 |