본문 바로가기

IT 서비스 바라보기/Programming

tomcat 5.5 버전에서의 server.xml 설정하기

이게 웬일인가..

tomcat 4 버전처럼 server.xml 에 context path 를 추가하지 말란다.

 

먼말인고..apache 문서를 찾아보니..

보안등을 이유로 이제는 직접적으로 server.xml 에 context path 를 기술하지 말고

따로 xml 파일을 만들어서 거기다가 context path 를 기술하라고 한다.

 

갑자기 머리가 아파온다. 왜 기술이 발전하면 할수록 계속 개발방법론이 변화가 되야하나..ㅡ.ㅡ;;

 

 

방식은 아래와 같다.

 

우선 server.xml 의 Host name 에다가 자신이 만들고 싶은 host name 을 기술한다.

그다음 tomcat 설치디렉토리/conf/Catalina/ 디렉토리 밑에 host name 에 기술한 이름의 디렉토리를 만든다.

그리고 그 디렉토리안에 ROOT.xml 파일을 만들어서 context path 를 지정하는 형식이다.

 

예)

톰캣 설치디렉토리 : C:\web\Tomcat

웹 서비스들 페이지가 있는 디렉토리 : D:\work_nio

웹 서비스 페이지 1 : D:\work_nio\swing.naver.com\WEB-INF\src

웹 서비스 페이지 2 : D:\work_nio\me.naver.com\WEB-INF\src

 

즉, 톰캣이 설치된 디렉토리에서 웹페이지들 및 소스를 나두는것이 아니고

별도의 디렉토리를 만들어서 이곳에서 웹페이지들 및 소스들 넣고 싶은것이다.

보통 이렇게들 많이 운영을 할것이다. apache 의 virtualhost 를 생각하면 될것이다.

 

위는 swing.naver.com , me.naver.com 으로 웹 서버를 운영하고 싶은 예를 둔것이다.

 

 

< 단계 1 >

C:\web\Tomcat\conf\server.xml 편집

 

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

     xmlNamespaceAware="false">
   </Host>
   

이렇게만 있는 부분 바로 아래에 다음과 같이 추가를 해준다.


   <Host name="swing.naver.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false"

     xmlNamespaceAware="false">
   </Host>

 

   <Host name="me.naver.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false"

     xmlNamespaceAware="false">
   </Host>

 

그리고 기본적으로 port 는 8080 으로 되어있는데 이렇게 되면 http://swing.naver.com:8080 이런식으로 주소를 넣어야하니

불편하기 그지없다. port="8080" 을 port="80" 으로 변경을 하여 http://swing.naver.com 으로 접속할 수 있도록 해준다.

 

 

< 단계2 >

C:\web\Tomcat\conf\Catalina 디렉토리 밑에

server.xml 파일에서 입력해준 host name 으로 디렉토리를 만들어준다.

 

아마 기본적으로 localhost 라는 디렉토리는 있을 것이다.

즉,

C:\web\Tomcat\conf\Catalina\swing.naver.com

C:\web\Tomcat\conf\Catalina\me.naver.com

 

 

< 단계3 >

만들어준 디렉토리밑에 ROOT.xml 파일을 각각 만들어준다.

즉,

C:\web\Tomcat\conf\Catalina\swing.naver.com\ROOT.xml

C:\web\Tomcat\conf\Catalina\me.naver.com\ROOT.xml

 

 

< 단계4 >

이렇게 만들어준 각각의 ROOT.xml 에 바로 context path 를 기술해 주면 된다.

 

C:\web\Tomcat\conf\Catalina\swing.naver.com\ROOT.xml 의 내용

 

<?xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="D:/work_nio/swing.naver.com" path="" reloadable="true">
</Context>

 

 

C:\web\Tomcat\conf\Catalina\me.naver.com\ROOT.xml 의 내용

 

<?xml version='1.0' encoding='utf-8'?>
<Context crossContext="true" docBase="D:/work_nio/me.naver.com/" path="" reloadable="true">
</Context>

 

 

< 단계 5 >

톰캣을 stop 한 후 start 한다.

 

이제 웹에서 http://swing.naver.com/index.html 하면 나올거에요~

 

단, D:/work_nio/swing.naver.com/WEB-INF\src 밑에 index.html 파일이 있어야겠고

이런 도메인 주소를 가지고 있어야겠죠.

 

만약에 지금 내 PC에서 테스트를 하고 싶다면 충분히 localhost 가지고만 하실 수 있습니다.

하지만 자신 PC의 IP로 주위사람들이 웹에서 ip 주소를 입력하여 들어오고 싶을때는

ip로 host name 을 지정하여 위의 단계처럼 만드시면 되겠죠~