본문 바로가기
공부방/Java

Tomcat server.xml 분석

by SmartCow 2022. 3. 14.

server.xml 파일 위치

Tomcat x.0\conf\server.xml

 

<기본 구조>

<Service name="Catalina">
      <Connector port="8080" protocol="HTTP/1.1"  maxThreads="150" connectionTimeout="20000"
       redirectPort="8443" />


      <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

        

           <Engine name="Catalina" defaultHost="localhost">
                 <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

 

           <Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true"
           xmlValidation="false" xmlNamespaceAware="false">
           </Host>

            </Engine>
</Service>

 

<Server port="8005" shutdown="SHUTDOWN">

→ 서버는 지정된 포트를 통해 shutdown명령어를 받는다.

 

- Connector 엘리먼트

요구를 [Engine] 건네 주는 역할.

[Serviced] 하나 이상의 [Connector] 가질 필요가 있음.

사용자가 HTTP 또는 HTTP/SSL  여러가지 방법으로 요구를 보내고

거기에 맞는 [Connector]들이 응답하며, 이를 받은 [Engine]은 매번 동일하게 처리. 

 

[Connector connectionTimeout='5000' port='8080' protocol='HTTP/1.1' redirectPort='8443']

1. connectionTimeout : 타임아웃 시간을 지정. 연결 요청 후 URI 요청이 들어오기까지의 대기시간.
2. 기본값은 60초이며 10초 이내로 지정하는게 좋음.(5000은 5초)

3. 시간이 지나도록 연결이 안되지 못하면, 팝업 문구로 실패 메시지가 뜬다.

4. redirectPort="8443" : https로 요청이 들어왔을때 8443번포트로 리다이렉트시킨다

 

[Connector URIEncoding="utf-8" port="8009" protocol="AJP/1.3"/]

AJP - Apache Jserv Protocol

 

[Engine name="Catalina" defaultHost="localhost"]

defaultHost로 처리를 넘긴다.

 

[Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"]

1. 가상의 호스트를 정의한다.

2. 톰켓의 기본 Document Root는 webapps/ROOT

3. appBase는 $CATALINA_HOME 디렉토리와 상대경로를 받는다.

이때 루트는 $CATALINA_HOME/webapps/ROOT

 

[Context path="/mng" docBase="D:/workspace/mng/webroot" reloadable="true"]

1. 가상호스트에 동작하는 하나의 웹 어플리케이션

2. docBase - 디렉토리를 절대경로로 지정을 하면 원하는 디렉토리를 Document Root로 사용 할 수 있다.
                  Host의 appBase 디렉토리에 대한 상대경로명을 지정할 수도 있다

3. path - docBase의 할당위치

4. 주소창에 http://localhost:8080/mng- 호스트명+포트+path

 D:/workspace/mng/webroot

5. reloadable - true 지정하면, Catalina /WEB-INF/classes/ /WEB-INF/lib  클래스 들의 변경여부를 체크하여 변경이 발생하면 웹어플리케이션을 자동으로 재적재(reload) 함.

※ docBase를 아래 처럼 프로젝트명(mng)만 입력해도 상관없음.
(위의 경우는 jsp파일에서 include되는 js파일 버전을 수정시, 경로를 찾지 못하는 오류가 있어서 하위까지 입력)

 

[Context path="/drug" docBase="mng" reloadable="true" source="org.eclipse.jst.jee.server:drug"]

docBase를 프로젝트명(상대경로)로 한다면, 뒤에 source(처음 톰캣 연결시 생기는)부분을 변경하면 안됨.

톰캣에 Deploy하면 workspace\.metadata\.plugins에 서버에 올라갈 프로젝트 구조가 생성되는데

서버가 파일들을 찾아가는 경로가 된다.

OR

 

[Context path="/drug" docBase="drugadmin" reloadable="true" source="D:/workspace/drugadmin/WebContent"]

이런식으로 Source에 workspace상 디렉토리를 적어준다.

 

 

 

[참고]

 

 

server.xml의 이해<Apache Tomcat 서버>

 Apache Tomcat 아파치 톰캣(Apache Tomcat)은 아파치 소프트웨어 재단(ASF:Apache Software Foundation)에서 개발 서블릿 컨테이너가 있는 웹 애플리케이션 서버(WAS) 톰캣은 웹 서버와 연동하여 실행할 수 있는..

leejungyeoul.tistory.com

 

'공부방 > Java' 카테고리의 다른 글

web.xml 생성  (0) 2022.11.05
Maven없이 JAVA 프로젝트 만들기  (0) 2022.11.05
favicon.ico 에러  (0) 2021.03.01
접속환경이 모바일이면 index변경  (0) 2021.02.13
SpringSecurity Authentication관련 클래스와 처리  (0) 2021.01.01