기존 프로젝트가 PHP로 이루어져 tomcat이 필요가 없었으나 신규 프로젝트를 JSP Spring 프레임워크를
사용하게 되면서 기존 apache 서버에 tomcat을 설치할 필요가 생겼다.
1. tomcat 8 설치
- apt로 다운로드가 안될 경우 직접 파일을 받아 설치한다 (https://tomcat.apache.org/download-80.cgi)
- 완료 메시지를 보면 tomcat 설치 경로를 확인할 수 있다.
apt-get install tomcat8
- tomcat의 default 포트는 8080이다.
- 정상적으로 설치가 완료되었다는 메시지를 확인할 수 있다.
- 해당 부분은 tomcat을 단독으로 사용할때 웹루트가 된다.
- 하지만 Apache와 연동해서 사용할 것이니 tomcat의 웹루트따위 필요없다. 지워주자.
- server config 파일은 설치환경에 따라 바뀌므로 위의 페이지에서 확인하여 사용자에 맞게 경로를 찾는다.
vim /var/lib/tomcat8/conf/server.xml
<!-- Apache를 통해 HTTP 프로토콜을 처리할 예정이므로
사용하지 않는다. 주석처리하자 -->
<!--
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443" />
-->
<!-- AJP는 Apache에서 서블릿 요청을 넘ㄴ길 프로토콜이므로 주석을 해제.-->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
2. mod_jk 설치
apt-get install libapache2-mod-jk
3. mod_jk 설정
- 설정 파일 오픈 (workers.properties)
vim /etc/libapache2-mod-jk/workers.properties
- 해당 파일의 아래 항목들을 사용자 tomcat 설치환경에 맞게 고쳐준다.
workers.tomcat_home=/usr/share/tomcat8
workers.java_home=/usr/lib/jvm/default-java
worker.list=ajp13_worker
worker.ajp13_worker.port=8009
worker.ajp13_worker.host=localhost
worker.ajp13_worker.type=ajp13
- 본 게시글을 따라 왔다면 모든 값은 default로 따로 수정할 항목이 없다.
- 로드밸런싱 목적으로 tomcat을 여러개 추가하여 해당 부분에서 설정할 수 있다.
4. Apache 설정
- apache를 설치하고 위와 같이 mod-jk를 설치하게 될 경우 자동으로 default 값으로 jk.con 모듈이 설정된다.
- mod_jk 설정은 /etc/apache2/mods-available/jk.conf 를 살펴보면 위에서 살펴본 workers.properties 가 추가되어
있는 것을 확인할 수 있다.
# We need a workers file exactly once
# and in the global server
JkWorkersFile /etc/libapache2-mod-jk/workers.properties
- 아파치와 톰캣이 연동된 부분은 확인하였다.
5. spring 프로젝트 war파일 생성
- 프로젝트 성격에 따라 추출 방식이 다를 수 있다.
- 해당 프로젝트는 spring-mvc(maven) 프로젝트이다
6. tomcat 설정
- 추출한 war 파일을 /var/lib/tomcat8/webapps 하단에 위치한다
- 필자의 경우 /var/lib/tomcat8/webapps/sc.war 가 되겠다.
- 해당 war 파일에 대한 context 설정을 해주어야 한다.
vim /var/lib/tomcat8/conf/server.xml
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="sc" reloadable="true"></Context>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
7. apache 설정
- 기존 php 프로젝트는 그대로 냅두고 8888포트를 사용해서 톰캣에 연결한다.
- /etc/apache2/sites-available/ 해당 위치에 기존 설정 파일을 복사해서 설정 파일을 추가하도록 하자
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/spring_exam.conf
- 설정 파일의 내용을 현재 프로젝트에 맞게 수정해주자
- 모든 요청에 대하여 mod_jk로 넘겨준다. ( 동적 요청만 넘겨주면 좋지만 아직 파악이 덜 됐다.. )
<VirtualHost *:8888>
ServerAdmin webmaster@localhost
DocumentRoot /var/lib/tomcat8/webapps/sc
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
JkMount /* ajp13_worker
</VirtualHost>
8. 재기동
- 포트번호가 다를경우 /etc/apache2/ports.conf 부분에 listen 포트를 추가해주는 것을 잊지말자
service apache2 restart
service tomcat8 restart
테스트 프로젝트가 무사히 연동된 것을 확인할 수 있다.
'Web > Server' 카테고리의 다른 글
[ Ubuntu ] UFW를 활용한 방화벽 설정 방법 (0) | 2019.12.05 |
---|---|
[ Linux ] iptables 사용한 IP 접근 차단 (3) | 2019.05.21 |
[ Apache ] DDoS 공격 대응( evasive 모듈,IP 제한 ) (0) | 2019.05.20 |
Ubuntu 18.04 캡쳐 명령어 (0) | 2019.04.15 |
APACHE - Virtual Host 등록 방법 (0) | 2019.04.11 |
댓글