[Tomcat] 톰캣 하나로 여러 개의 war파일 배포하기
자, 일단 tomcat과 war파일 일대일로 배포하는 방법은 안다고 가정하겠다.
모른다면 아래링크를 참고하자.
그렇다면 위의 상태에서
즉, 한개의 프로젝트는 배포한 상태에서 다른 프로젝트 war파일을 배포하고 싶으면 어떻게 해야할까?
1. webapps 폴더에 추가하고자 하는 배포파일(WAR파일)을 넣어준다.
2. tomcat [conf] 폴더의 server.xml 을 수정해준다.
결론부터 비교해서 보겠다.
먼저, TEST1.war파일 하나만 배포했을 때의 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>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" enableLookups="false" acceptCount="100" disableUploadTimeout="true"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<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="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="TEST1" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
TEST2.war파일을 추가한 뒤 수정한 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>
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" enableLookups="false" acceptCount="100" disableUploadTimeout="true"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<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="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="TEST1" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
<Service name="Catalina2">
<Connector port="9090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="9443" URIEncoding="UTF-8" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" enableLookups="false" acceptCount="100" disableUploadTimeout="true"/>
<Connector port="9009" protocol="AJP/1.3" redirectPort="9443" />
<Engine name="Catalina2" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="TEST2" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
차이가 느껴지는가?
자세히 살펴보면 Service 부분이 추가된 것을 알 수 있다.
등록하고자하는 배포파일 각각의 서비스를 등록해주고, 서비스마다 WAS가 넘겨주는 포트를 다르게 해주어야한다.
표시된 부분만 수정하여 서비스를 추가하자
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" enableLookups="false" acceptCount="100" disableUploadTimeout="true"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<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="webapps" unpackWARs="true" autoDeploy="true">
<Context path="" docBase="TEST1" reloadable="true"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
그리고 실행방법은 동일하게 bin 폴더로 가서 [Shift + 마우스 우키] - [여기서 명령창 열기] 후 명령프롬포트창에서 startup 명령어를 치면 된다.
위에 수정한 부분은 가장 기본적인 부분만 수정한 것이다.
만약 webapps과 webapps2폴더로 war파일을 구분했다면, appBase를 수정해주면 되고
추가로 도메인을 사서 alias를 주고싶다면 아래와 같이 수정도 가능하다.
<Host name="도메인.com" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Alias>도메인.com</Alias>
<Alias>www.도메인.com</Alias>
<Context path="" docBase="TEST1" reloadable="true"/>
참고링크 : 윈도우 서비스 등록하는 방법
'Front > WebServer' 카테고리의 다른 글
[Apache] SpringBoot AJP 포트 설정하기 (0) | 2020.09.08 |
---|---|
[Error] 톰캣 server.xml 설정에러 : Error processing request NullPointException (0) | 2020.01.03 |
[Tomcat] Apache Tomcat 윈도우 서비스 등록하는 방법 (1) | 2019.09.20 |
[Error] Port listening Error (8080, ...) 포트 충돌 에러 해결 : 톰캣 강제종료 및 포트 변경 방법 (0) | 2019.07.16 |
[JEUS] Jeus 서버와 어플리케이션 추가하는 방법 (0) | 2019.07.02 |
댓글