요르딩딩
[Spring 분석] Tomcat 설정관리 본문
Tomcat
: Tomcat은 JSP환경을 포함하고있는 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>
'[Web] > [Spring]' 카테고리의 다른 글
[Spring 분석] jar, war 란 (0) | 2021.04.07 |
---|---|
[Spring 분석] HTTP multipart (0) | 2021.04.06 |
[Spring 분석] 파일다운로드 (0) | 2021.04.03 |
[Spring 분석] 호스트(IP),프로세스, 포트, 소켓이란 (0) | 2021.04.03 |
[Spring 분석] URLConnect, HTTPURLConnect (0) | 2021.04.03 |