2019년 6월 28일 금요일

apache tomcat deployments 방식

apache tomcat deployments 방식은 archive or unarchive(exploded) 형태이다.

eclipse에서 Export 선택할수 있다. (이 내용은 skipped)

deployments 방식에 잠시 가물가물해서 확인해봤더니 내용이 너무 방대하고 구체적인 설명이 없는 것 같이 테스트를 해보았다.

1. webapps 에 파일을 복사 ( archive or unarchive 상관없이) tomcat server.xml default 설정

기본적으로 tomcat을 설치한 후 webapps에 application을 복사하면 기동 될때 배포가 된다.

INFO: Deploying web application archive [/was/servers/tomcat8/webapps/test2.war]
INFO: Deployment of web application archive [/was/servers/tomcat8/webapps/test2.war] has finished in [823] ms

여기서 호기심,
webapps는 어떻게 인식을 하는 것일까?
apache.tomcat 엔진 홈 경로에 bin/catalina.sh 파일을 보면
CATALINA_BASE라는 환경변수가 있고 이 CATALINA_BASE 하위에 webapps경로를 바라보고 있다 

      <Host name="localhost"  appBase="webapps"  <<- CATALINA_BASE/webapps 라는 뜻(full path)
            unpackWARs="true" autoDeploy="true">
      </Host>

이렇게 deploy를 하게 되면 application 명을 따라 간다.
CATALINA_BASE/webapps 경로를 확인해보면 archive 파일이 unarchive 파일이 되어있다.
내가 만든 application 명은 test2.war이고, context는 test2가 된다. 
예를 들어 호출해보면 위와 같이 deploy 했을 경우 http://localhost:8080/test2/index.jsp 


2. 다른 경로에 파일을 deploy하고 싶고 archive 파일인 경우
 Context를 추가해주면 된다. 간단하다.

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="false">
      <Context path="" docBase="/app/test2.war" /> ( "/"  </Context> 와 동일)
      </Host>
위와 같은 경우에는 webapps(정확히는 CATALINA_BASE/webapps) 파일을 복사하지 않고
CATALINA_BASE/webapps 이외 별도 file or exploded 형태 application을 사용 하겠다는 의미이다.

/app/test2.war 파일을 확인해 보니 archive 는 있는데 unarchive는 없다.
unarchive가 없는 게 아니라 <host>에 appBase="webapps"가 기본적으로 설정되어 있기 때문에 ROOT 라는 directory 가 있을 것이고 unpackWARs="true" 이기 때문에 unarchive 파일이 만들어 졌다.

driectory가 ROOT 인 것은 path=""
즉, context가 필요 없는 경우 이렇게 설정 한다.
호출 예) http://localhost:8080/index.jsp 

3. deploy는 하는데 archive 파일만 사용하고 싶은 경우

      <Host name="localhost"  appBase="webapps"
            unpackWARs="false" autoDeploy="false">
      <Context path="" docBase="/app/test2.war" />
      </Host>

 unpackWARs="false" 하면 된다.
 unarchive 파일(ROOT)은 어디에도 없다. 하지만 deploy는 잘된다. 

tomcat에 Context 설정은 문서를 참고하면 많은 옵션을 확인 할 수 있다.

http://tomcat.apache.org/tomcat-8.5-doc/config/context.html






댓글 없음:

댓글 쓰기