CentOs7 Spring war 배포하기(deploy)

선행작업

CentOs에 JDK 설치 CentOs에 Tomcat 설치 CentOs에 vsftpd 설치

요약

배포파일 경로 : /usr/share/tomcat/webaaps 설정파일 : /etc/tomcat/server.xml 로그파일 경로: /var/log/tomcat 배포파일명 : sample.war

들어가기

로컬에서 개발된 spring war를 centOs에 tomcat에 배포하여 동작 시켜보겠다. 배포할 war는 로컬 pc에서 sts툴에서 maven 기반 spring mvc 프로젝트를 사용하도록 하겠다.

STS에서 spring 프로젝트의 war 추출하기

STS에서 프로젝트 우클릭 -> Run AS -> Maven install 클릭하면 target 폴더가 생기며, war 파일이 생성된다.

maven install로 war 파일 만들기

생성된 war파일

해당 war파일을 배포할 CentOS 에 ftp로 전송한다.

war파일을 배포서버로 전송

CentOs Tomcat의 webapps에 war파일 이동 및 설정

나는 yum 를 이용하여 Tomcat7을 설치했다.

/etc/tomcat/webapps 경로에 ftp로 전송한 war파일을 옮긴다.

그리고 해당 파일을 sample.war로 이름을 변경한다.

배포할 파일을이동 및 파일명 변경

tomcat이 실행되면서 위 war파일을 이용하여 배포하여 실행하게 된다. 이제 tomcat에게 위 sample.war를 셋팅해줘야 한다.

/etc/tomcat/server.xml 파일을 vi 편집기로 열자.

파일의 맨 마지막 부분을 보면 Host 태그가 보인다. 그 내부에 Context 태그를 추가해야 한다.

추가할 문구, docBase에 실행할 war 파일 경로를 위치한다. war확장자는 생략한다.

1
<Context path="" docBase="/usr/share/tomcat/webapps/sample" reloadable="true" />

server.xml의 Host태그

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<Host name="localhost"  appBase="webapps"
unpackWARs="true" autoDeploy="true">

<Context path="" docBase="/usr/share/tomcat/webapps/sample" reloadable="true" />

<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->

<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />

</Host>

이제 tomcat에 war를 배포준비를 끝냈다.

tomcat 실행하기

아래 명령으로 tomcat을 재 실행하자.

1
systemctl restart tomcat

톰캣이 재 실행되며 방금 설정한 내용을 가지고 /var/lib/tomcat/webapps에 war파일을 배포한다. 이 동작이 시간이 좀 걸린다. 이 과정을 보려면 tomcat의 log를 tail로 확인 하면 된다.

/var/log/tomcat 경로를 보면 tomcat이 생성하고 있는 log파일을 볼 수 있다. 오늘날짜 log파일을 tail명령어으로 실시간 관찰해보면 된다.

1
[root@localhost tomcat]# tail -n +20 -f catalina.2018-05-22.log

tomcat로그 화면

tomcat war 실행결과

만약 정상동작하지 않는다면 로그파일로 문제를 확인해야 한다.

끝.