Tomcat 배포 방법
appBase / docBase / xmlBase Deploy
(1) CATALINA_HOME/conf/server.xml 에서 docBase를 사용하여 배포하기 위해 <Host>
하위에 <context> 정보를 추가
예) docBase를 사용하여 기본 Tomcat webapps 위치 이외의 경로에 있는 App배포
[weblogic@localhost conf]$ pwd /apache/tomcat9/apache-tomcat-9.0.21/conf [weblogic@localhost conf]$ vi server.xml ... skip ... <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="/applications" docBase="/app/applications" reloadable="true"/> …skip… |
(2) appBase는 기본적으로 <Host> 하위에 “webapps”라는 값으로 정의가 되어 있기 때문에, CATALINA_HOME/webapps위치에 배포할 App을 위치시키면 자동적으로 배포가 진행
예) /app/applications 소스를 CATALINA_HOME/webapps에 위치 시킨 후 Tomcat 재기동
[weblogic@localhost conf]$ pwd /apache/tomcat9/apache-tomcat-9.0.21/conf [weblogic@localhost webapps]$ cp -R /app/applications ./ [weblogic@localhost webapps]$ ls -rtl 합계 12 drwxr-x---. 3 weblogic weblogic 4096 6월 24 17:39 ROOT drwxr-x---. 14 weblogic weblogic 4096 6월 24 17:39 docs drwxr-x---. 6 weblogic weblogic 78 6월 24 17:39 examples drwxr-x---. 5 weblogic weblogic 82 6월 24 17:39 host-manager drwxr-x---. 5 weblogic weblogic 97 6월 24 17:39 manager drwxrwxr-x. 4 weblogic weblogic 4096 6월 24 22:53 applications |
(3) xmlBase로 배포하기 위해 CATALINA_HOME/conf/Catalina/localhost/applications.xml를 생성
예) CATALINA_HOME/conf/Catalina/localhost/applications.xml
[weblogic@localhost localhost]$ pwd /apache/tomcat9/apache-tomcat-9.0.21/conf/Catalina/localhost [weblogic@localhost localhost]$ vi applications.xml <Context docBase="/app/applications"/> |
**xmlBase배포 위치의 기본 값은 CATALINA_HOME/conf/${ENGINENAME/${HOSTNAME}
(4) 배포 확인
예) http://{IP}:8080/applications/test.jsp
Manager-GUI Deploy
Tomcat manager-gui에 브라우저로 접속하여 배포를 진행하는 방법
(1) CATALNA_HOME/conf/tomcat-users.xml 파일에 manager-gui권한과 manager-script 권한을 가진 계정을 추가
** 운영 환경에서는 manager-gui권한과 manager-script권한을 한 계정에 주지 않는 것을 권장
예) tomcat / secret 계정 추가
[weblogic@localhost conf]$ vi tomcat-users.xml …skip… xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=http://tomcat.apache.org/xml tomcat-users.xsd version="1.0"> <role rolename="manager-gui"/> <role rolename="manager-script"/> <user username="tomcat" password="secret" roles="manager-gui,manager-script"/> …skip… </Host> |
(2) CATALINA_HOME/webapps/manager/META-INF/context.xml파일에 Tomcat 외부에서 접근하는 Client IP를 허용하는 내용 추가
예) 외부에서 192.x.x.x 대역으로 접근하기 위해 아래와 같이 수정
[weblogic@localhost META-INF]$ pwd /apache/tomcat9/apache-tomcat-9.0.21/webapps/manager/META-INF [weblogic@localhost META-INF]$ vi context.xml <Context antiResourceLocking="false" privileged="true" > <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="192\.\d+\.\d+\.\d+|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/> …skip… </Host> |
(3) 오류! 하이퍼링크 참조가 잘못되었습니다.으로 접속하여 Manager App 클릭 후 위에서 생성한 tomcat 계정으로 접속
(4) Manager App 접속 후 컨텍스트 경로와 디렉토리 경로, XML 설정 파일 경로 그리고 WAR파일 위치를 지정하여 Application 배포 가능
예) Manager App 페이지
예) Manager App 페이지에서 /app/applications경로의 소스를 Context Root /applications로 배포
예) Manager App 페이지에서 WAR 파일을 업로드하여 배포
예) Manager App 페이지에서 applications.xml을 통해 Context Root /applications로 배포
applications.xml을 미리 생성해 두어야 함
<Context docBase="/app/applications"/> |
(5) 배포 확인
예) http://{IP}:8080/applications/test.jsp