[WAS] 프로젝트별 server.xml 설정

|
윈도우에서의 cygwin 사용이나, 리눅스 사용시에는 톰캣의 server.xml에 프로젝트에 대한 적절한 설정을 해줘야 한다.

먼저 이클립스를 사용하면서 cygwin을 동시에 사용하여 좀 더 편리한 개발환경을 구성하는 경우를 살펴보자.


사용자가 제공하려는 시스템의 정보를 정확히 기록해야만 정상적인 시스템 구동이 가능하므로 특히 주의하여 작성토록 하자.

CONTEXT 태그내부에 해당 프로젝트의 상세 정보(경로 등)을 기록하고 아래와 같이 RESOURCE 태그에서는 필요로하는 부가정보를 기록하기도 한다.

<Context docBase="D:/svn/Source/TEST_SYSTEM/WebContent" path="/TEST_SYSTEM" reloadable="true"

source="org.eclipse.jst.jee.server:TEST_SYSTEM">
 
                 <WatchedResource>WEB-INF/web.xml</WatchedResource>
 
                 <Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" maxActive="100" maxIdle="30" maxWait="10000"

name="jdbc/DB_TEST" password="pass" type="javax.sql.DataSource" url="jdbc:mysql://000.000.000.000:3306/test_db"

username="user"/>
 
</Context>


다음과 같은 정보를 기본제공되는 server.xml의 HOST 태그사이에 추가하면 된다. 이 프로젝트의 경우 로컬에서 사용하는 것이기 때문에

상위 태그인 SERVICE나 ENGINE 등에 손댈 필요가 없다.

만약 프로젝트를 더 추가하고 싶을 경우 CONTEXT 태그만 추가하면 프로젝트의 추가가 정상적으로 이루어진다.



그렇다면 이번에는 리눅스에서 설정했던 server.xml의 내용을 살펴보자.

<Service name="TEST_SYSTEM">


<Connector  port="9092" protocol="HTTP/1.1" connectionTimeout="20000"  redirectPort="8443" URIEncoding="UTF-8"/>


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


<Engine name="TEST_SYSTEM" defaultHost="localhost">

<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>

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

<Context path="/TEST_SYSTEM" docBase="/webSrc/TEST_SYSTEM/WebContent" reloadable="true">

<Resource

auth="Container"

driverClassName="com.mysql.jdbc.Driver"

maxActive="100"

maxIdle="100"

maxWait="10000"

name="jdbc/DB_TEST"

password="pass"

type="javax.sql.DataSource"

url="jdbc:mysql://localhost:3306/test_db"

username="user"/>

</Context>

</Host>

</Engine>

</Service>


이번에는 위와같이 SERVICE 태그와 ENGINE 태그 HOST 태그까지 함께 표현했다. 위에서 cygwin 설정시 기록했던 내용과의 차이를 살펴보면

CONTEXT 태그에 source 속성이 없다는것 정도이다. 그렇다면 무슨차이가 존재할까.


사실 위와같이 서비스 태그까지 다르게 설정하는 것은 서버의 포트를 여러개로 분할하여 시스템을 구성하기 위해서 사용한다.

SERVICE 태그 바로 밑의 CONNECTOR 태그의 포트를 살펴보면 9092로 설정한 것을 볼 수 있는데, 이는 이 SERVICE 태그 내부에

작성한 CONTEXT의 프로젝트는 9092번 포트를 사용한다는 것이다. 


이렇게 SERVICE를 여러개로 분리하면 위 서버에서 구현하려고 했던것과 같이 한 서버 내에서 여러개의 시스템을 다른 포트를 사용하여

서비스 할 수 있다. 하지만 한 도메인에서 포트가 달라도 같은 도메인명은 사용이 불가능하니 이점은 숙지해야 하겠다.



'WEB' 카테고리의 다른 글

[WAS] DBCP resource파라미터의 의미 및 설정  (0) 2011.09.08
[WEB] 톰캣 설정파일을 사용한 DB연결  (0) 2010.10.09
And