Tomcat 다중 서버 실행하기
1. localhost:xxxx (port 구분으로 연결)
example
tomcat/conf/server.xml
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<!-- 수정해야 되는 부분 -->
<!-- 서비스 1 // http://localhost:5050/ -->
<Service name="Catalina">
<Connector port="5050" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="5443" />
<Connector port="5009" protocol="AJP/1.3" redirectPort="5443" URIEncoding="UTF-8"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="c:/work/aaa/"
unpackWARs="true" autoDeploy="true">
<!--<Context path="" docBase="aaa/" reloadable="true"/>-->
</Host>
</Engine>
</Service>
<!-- [end]: 서비스 1 -->
<!-- 서비스 2 // http://localhost:6050/ -->
<Service name="Catalina">
<Connector port="6050" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="6443" />
<Connector port="6009" protocol="AJP/1.3" redirectPort="6443" URIEncoding="UTF-8"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="c:/work/"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="bbb/" reloadable="true"/>
</Host>
</Engine>
</Service>
<!-- [end]: 서비스 2 -->
<!-- 서비스 3 // http://localhost:4050/ -->
<Service name="Catalina">
<Connector port="4050" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="4443" />
<Connector port="4009" protocol="AJP/1.3" redirectPort="4443" URIEncoding="UTF-8"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="c:/work/"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="ccc/" reloadable="true"/>
</Host>
</Engine>
</Service>
<!-- [end]: 서비스 3 -->
<!-- [end]: 수정해야 되는 부분 -->
</Server>
-
<Host appBase="{path}">
에 해당 서버의 폴더경로를 설정한다.<Context>
를 사용할 경우<Context codBase="{path}">
에 해당 서버의 폴더경로를 설정한다. (<Context>
를 지정하지 않을 경우 default 값으로 ROOT가 지정이 되어 하위에 ROOT폴더가 필요한 것으로 보인다.) -
위의 서비스1 부분 처럼
<Context />
부분을 만들지 않고<Host>
에서 바로 경로를 설정 했다면 ROOT 폴더가 있어야 가능하다.
/work/aaa/ROOT/index.html
/work/bbb/index.html
/work/ccc/index.html
-
위와 같이 설정 했을 경우에는 아래처럽 접속 하면 된다.
http://localhost:4050/
http://localhost:5050/
http://localhost:6050/
-
서버를 더 추가 하고 싶다면
<Service name="Catalina">
부분을 계속 추가한다.
2. 도메인으로 연결
example
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<!-- 수정해야 되는 부분 -->
<Service name="Catalina"> <!-- port를 기본 port인 80으로 설정한다 -->
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<!-- 서비스 1 // http://www.aaa.com/ -->
<Host name="www.aaa.com" appBase="c:/work/aaa/"
unpackWARs="true" autoDeploy="true">
</Host>
<!-- [end]: 서비스 1 -->
<!-- 서비스 2 // http://www.bbb.com/ -->
<Host name="www.bbb.com" appBase="c:/work/"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="bbb/" reloadable="true"/>
</Host>
<!-- [end]: 서비스 2 -->
<!-- 서비스 3 // http://www.ccc.com/ -->
<Host name="www.ccc.com" appBase="c:/work/"
unpackWARs="true" autoDeploy="true">
<Context path="" docBase="ccc/" reloadable="true"/>
</Host>
<!-- [end]: 서비스 3 -->
</Engine>
</Service>
<!-- 수정해야 되는 부분 -->
</Server>
-
<Service><Connector port="80">
의 port를 80으로 설정한다. -
위의 서비스1 부분 처럼
<Context />
부분을 만들지 않고<Host>
에서 바로 경로를 설정 했다면 ROOT 폴더가 있어야 가능하다.
/work/aaa/ROOT/index.html
/work/bbb/index.html
/work/ccc/index.html
-
위와 같이 설정 했을 경우에는 아래처럽 접속 하면 된다.
http://www.aaa.com/
http://www.bbb.com/
http://www.ccc.com/
-
서버를 더 추가 하고 싶다면
<Host>
부분을 계속 추가한다.