아래 작성한 내용은 Windows에 Tomcat을 서비스로 등록하여 구동하는 것을 전제로 구성된 내용입니다.
1.Apache Tomcat 내려받기
우선 아래 그림 처럼 아파치 톰캣 홈 페이지에서 Binary 형태(.zip)
의 Tomcat을 내려받습니다.
Windows 환경에서는 '32-bit Windows zip'(또는 64-bit Windows zip)항목을 클릭해서 내려받기 합니다.
(그 외의 항목에서는 Windows Service에 등록하는 배치파일이 없을 수 있습니다.)
2.Apache Tomcat 설치
거창하게 설치라고 했습니다만 ... Binary 형태(.zip)로 내려 받았기 때문에 설치라는 행위를 할 필요는 없습니다. 내려받은 파일을 적절한 위치(원하는 위치)에 압축을 푼 뒤, 압축을 풀어 나온 파일(폴더)를 복사하고, 이름을 변경하여 붙여넣기 합니다.
폴더 명
은 용도에 따라서 적절하게 변경하면 되나 가급적 한글은 사용하지 않는 것이 좋습니다. 글에서는 'tomcat1'
, 'tomcat2'
로 구분해서 사용합니다.
3.설정 변경
3.1.tomcat2
항목의 conf
디렉터리 파일 중 server.xml
파일을 열어 port
항목이 존재하는 부분의 내용을 다르게 분리해 줍니다.
<?xml version='1.0' encoding='utf-8'?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JasperListener" />
<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" />
<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">
<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>
위 코드에 기본적으로 설정 된 prot
, redirectPort
부분은 tomcat1
을 구동하면 사용되는 포트이므로 수정 없이 tomcat2
를 실행하면 포트 충돌이 발생하거나 tomcat2
종료 시 tomcat1
까지 함께 종료되는 등의 문제가 발생할 수 있습니다. 때문에 강조된 부분을 모두 변경해 주어야 합니다. 예를 들어 port="8005"
는 port="8100"
와 같이 변경 해 주어야 하며, 'Connector' 항목에 설정 된 포트의 경우 방화벽을 사용하고 있다면 방화벽 예외 항목에 포함되어야 합니다. (필요하다면 tomcat1
, tomcat2
모두 변경해서 사용해도 상관없습니다.)
추가로 위 내용 중 protocol="AJP/1.3"
항목의 redirectPort="8443"
항목의 포트는 바로 윗 줄의 redirectPort="8443"
항목의 포트 번호와 같아야 합니다.
(통상적으로 tomcat만 사용하여 웹서버를 구성하는 것이라면 주석으로 처리해 두어도 무방합니다.)
3.2.tomcat2
폴더의 bin
디렉터리의 파일 중 service.bat
파일을 찾아 메모장 등 에디터로 열러 수정합니다.
...
rem Set Default Service name
set SERVICE_NAME=TOMCAT ...
set PR_DISPLAYNAME=Apache Tomcat ...
...
파일의 내용 중에 SERVICE_NAME
, PR_DISPLAYNAME
항목을 적절하게 변경합니다. 변경 시 주의할 부분은 SERVICE_NAME
항목에 띄어쓰기나 '_'(언더바)가 들어가면 서비스 등록 시 오류가 발생할 수도 있고, 서비스 명이 정상적으로 표시되지 않을 수도 있습니다.
4.서비스 등록 및 확인
4.1.서비스 등록
3번 항목까지 모두 완료되면 커멘드(CMD)창을 열어 tomcat2
의 bin
디렉터리로 이동합니다. 해당 디렉터리에서 아래와 같이 명령을 실행하여 서비스에 등록합니다.
$prompt tomcat2\bin>service.bat install
4.2.서비스 등록 확인
Windows의 관리도구 > 서비스
창을 띄워서 3.2
에서 설정한 SERVICE_NAME
에 맞는 항목이 등록되었는지 확인하고, 등록되었다면 상황에 맞게 설정 및 시작을 진행합니다.
5.실행 확인
브라우저를 띄워 3.1
항목에서 설정한 포트에 맞게 호출하여 정상적으로 실행되고 있는지 확인합니다. 정상적으로 실행되고 있다면 아래와 같은 화면을 확인할 수 있습니다.