요르딩딩

[Spring 분석] Tomcat 설정관리 본문

[Web]/[Spring]

[Spring 분석] Tomcat 설정관리

요르딩딩 2021. 4. 6. 16:26
728x90
Tomcat
 : TomcatJSP환경을 포함하고있는 Servlet컨테이너
   Servlet 컨테이너는 사용자 입장에서 Servlet 유지하고 호출하여 실행하는 

[폴더구조]

bin :
톰캣 서버의 동작을 제어할  있는 스크립트  실행 파일
conf : 톰캣의 기본적인 설정 파일
lib : 아파치와 같은 다른  서버와 톰캣을 연결해주는 바이너리 모듈들이 포함
webapps: 웹 어플리케이션 루트 폴더
logs: 서버의 로그 파일이 저장되는 디렉토리
Work: JSP 컨테이너와 다른 파일들이 생성하는 임시 디렉토리
temp: 임시 저장 폴더

1. *.html, *.jsp, 등. 
웹 어플리케이션에서 클라이언트 브라우저로 전송이 되는 HTML 과 JSP 페이지와 다른 파일들 (예를 들면 자바스크립트, 스타일시트, 이미지 같은). 대규모 어플리케이션에서 이 파일들을 서브디렉토리 체계로 나누어 놓을 수 있습니다.

2. /WEB-INF/web.xml
일종의 환경 설정 파일
웹 애플리케이션에 대한 여러가지 설정을 할 때 사용.
서블릿과 웹어플리케이션을 구성하는 다른 컴포넌트들을 설명하고, 각종 초기화 파라미터들과 서버 기능을 활용하기 위한 컨테이너가 관리하는 보안 제한 구역을 지정하는 XML 파일입니다. 

3. /WEB-INF/classes/ 
이 디렉토리에는 웹 어플리케이션에서 사용하는 모든 자바 파일(그리고, 관련 자원)이 들어있습니다. 서블릿과 비서블릿 클래스 파일들이며 jar 형태로 묶여있지 않은 것입니다. 패키지가 선언된 클래스라면 
/WEB-INF/classes/ 를 기준으로 패키지의 디렉토리를 만들어 구성하면 됩니다. 

4. /WEB-INF/lib/ 
이 디렉토리에는 웹어플리케이션에서 사용하는 자바 클래스파일을 포함하는 JAR 파일들이 위치합니다. 외부 클래스 라이브러리나 JDBC 드라이버 같은 것들입니다.

server.xml에 등록하는 웹 애플리케이션을 컨텍스트(Context)라고 함

1. Context : 
톰캣 입장에서 인식하는 한 개의 웹 어플리케이션
2. 컨테이너 실행 시 웹 애플리케이션당 하나의 컨텍스트가 생성
3. 등록은 server.xml에 함 (<Context> 태그를 이용)
<Context> 태그

1. 톰캣은 모든 설정 정보를 XML로 저장한 후 실행시 정보를 읽어와 설정대로 실행
2. 만든 웹 어플리케이션도 <Context> 태그를 이용해서 server.xml에 등록해두어야 톰캣이 설정한 대로 웹 어플리케이션을 실행
3. 위치: <Host> 태그 속 <HOST 샬라샬라> 요 사이 </HOST>
//docBase: 컨텍스트에 대한 실제 웹 애플리케이션이 위치한 경로, WEB-INF 상위 폴더까지의 경로
//path: 웹 애플리케이션의 컨텍스트 이름, 웹 브라우저에서 실제 웹 애플리케이션을 요청하는 이름
//reloadable: 실행 중 소스 코드가 수정될 경우 바로 갱신할지를 설정, false로 설정하면 톰캣을 다시 실행해야 추가한 소스 코드의 기능이 반영

<Context path="//컨텍스트명" docBase="실제 웹 애플리케이션의 WEB-INF 디렉터리 위치" reloadable="true 또는 false" />
<Context path="/pm-api" docBase="pm-api" reloadable="true" source="org.eclipse.jst.jee.server:pm-api"/></Host>

 

[설명]

Tomcat 실행시 server.xml의 <Context>태그의 설정을 읽어 Tomcat내부의 webapps라는 폴더를 읽습니다.

1. 기본  : Tomcat의 webapps폴더안의 ROOT폴더의 웹 어플리케이션 war를 읽습니다.

2. v5 / pm-api 

: webapps 폴더안에 이미지 파일을 저장하는 새폴더(v5)를 만들어 관리하고 싶을때,

  새폴더(v5)를 생성후 server.xml에 아래와 같은 설정을 해주면 Tomcat이 v5 웹 어플리케이션을 바라볼수 있게 됩니다.

//해당 부분을 아래와 같이 설정하면 webapps폴더가 루트 경로가 된다.
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">

	<Context Path="/v5" docBase="v5" ></Context>

	<Context path="/pm-api" docBase="pm-api" reloadable="true" source="org.eclipse.jst.jee.server:pm-api"/>
</Host>

+ 위처럼 설정을 하면 webapps 폴더에 ROOT폴더와pm-api폴더가 함께 생성되는 현상이 발생한다.
이를 해결하기 윈해서는 Host에 deployIgnore를 추가하면 해결된다.

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true" deployIgnore=".*">
    <Context docBase="IDS" path="/" reloadable="true"/>
</Host>    

 

728x90
Comments