톰캣 6.0 에서 웹사이트 여러개 운영하기 (2)
톰캣에서 하나의 IP로 여러개의 웹사이트를 운영하는 방법은 2가지가 있다.
# 가상 호스트(Virtual Host)를 이용하는 방법
# IP Address의 port를 여러개 사용하는 방법
여기서는 가상 호스트를 이용하여 톰캣에서 여러개의 웹사이트를 운영하는 방법에 대해서 설명하고자 한다.
설치 환경은 다음과 같다.
* O/S : Windows XP (Windows Server 동일)
* Tomcat 6.0.10
설명의 편의를 위해 톰캣의 설치 디렉토리는 'TOMCAT_HOME' 으로 표기할 것이다. 참고로 내 경우는 C:\Server\Tomcat6.0 이다.
설정하는 방법은 /TOMCAT_HOME/conf/에 있는 server.xml 파일만 수정하면 된다. server.xml의 쓸데없는 주석부분을 다 없애고 관련 부분만 남겨놓으면 아래와 같다.
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
위의 내용에서 핵심 부분은 <Host></Host> 영역이다.
1. 우선 <Connector port="8080" protocol="HTTP/1.1" 부분의 port를 80으로 수정한다.
도메인명이 기본으로 80포트를 사용하기 때문이다.
2. <Host>... </Host> 에 해당하는 부분을 복사하여 2개를 만든다. 그리고 이렇게 수정하자.
<Host name="www.myweb1.com" appBase="d:/webapps/myweb1"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
<Host name="www.myweb2.com" appBase="d:/webapps/myweb2"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
appBase="webapps" 는 톰캣의 기본 웹루트인 TOMCAT_HOME/webapps 디렉토리를 가르킨다. 웹사이트를 원하는 디렉토리에 두고 싶다면 d:/webapps/myweb1 처럼 자기가 지정하고 싶은 곳으로 수정하면 된다.
3. 마지막으로 웹사이트들의 ROOT 디렉토리를 지정해주자. 아래의 폴더를 생성한다.
d:/webapps/myweb1/ROOT/
d:/webapps/myweb1/ROOT/WEB-INF/
d:/webapps/myweb2/ROOT/
d:/webapps/myweb2/ROOT/WEB-INF/
그리고 WEB-INF 폴더 밑에 각각 web.xml 파일을 추가한다. 그냥 /TOMCAT_HOME/webapps/ROOT/WEB-INF/에 있는 web.xml 을 복사하면 된다.
4. 테스트하기 위해 ROOT/index.html 또는 index.jsp를 만든다.
이제 톰캣을 재시작하고 웹브라우저로 접속해 보자.
http://www.myweb1.com
http://www.myweb2.com
정말 간단하지 않은가?
톰캣 6.0에서 웹사이트 여러개 운영하기 (1)
아파치와 연동없이 톰캣만으로도 하나의 IP로 다수의 웹사이트를 운영하는 것이 가능하다.
(아파치와 톰캣을 연동하는 방법에 대해서는 차후에 자세히 올리도록 하겠다)
특히 개발자의 경우 여러개의 프로젝트를 개발하거나 테스트하고자 할 때 웹사이트를 여러개 운영해야한다. 다수의 웹 사이트를 세팅하는 방법은 크게 2가지가 있다.
* 가상호스트를 이용하는 방법
* IP Address의 port를 여러개 사용하는 방법
가상호스트를 이용하는 방법은 도메인을 이용하여 실제로 서비스를 운영하는 경우가 아니면 개발자에겐 별 의미가 없다. 여기서는 두번째 방법인 IP 어드레스의 포트를 이용하는 방법에 대해서 설명하겠다. (바로가기 : 톰캣에서 가상 호스트를 이용하는 방법)
우선 설치 환경은 다음과 같다.
* O/S : Windows XP (난 아직 리눅스를 잘 모른다. 비슷하겠지만 테스트해보지 않았다)
* Tomcat 6.0 (정확히는 6.0.10) : 다운로드
설명의 편의를 위해 톰캣의 설치 디렉토리는 'TOMCAT_HOME' 으로 표기할 것이다. 참고로 내 경우는 C:\Server\Tomcat6.0 이다.
설정하는 방법은 간단하다. /TOMCAT_HOME/conf/에 있는 server.xml 파일만 수정하면 끝이다. server.xml의 쓸데없는 주석부분을 다 없애고 핵심부분만 남겨놓으면 아래와 같다.
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
우선 빨간색으로 표시한 부분만 이해하고 넘어가도 상관없다.
Connector port="8080"은 HTTP로 넘어오는 포트를 지정하는 것이다. 톰캣의 기본 포트가 8080인 이유가 여기에 있다. 따라서 8080 대신 기본 80포트를 사용하고 싶다면? 바로 이 부분을 port="80"으로 바꾸어주면 된다.
다음, Host 지시어의 appBase="webapps" 는 웹어플리케이션(웹사이트)의 위치를 나타낸다. appBase="./webapps"와 같은 의미다. 실제 위치는 TOMCAT_HOME/webapps이다. 물론 "d:/weapps/myweb1" 과 같이 절대경로로 지정하는 것도 가능하다.
그럼 웹사이트를 하다 더 추가하고 싶다면? 위의 <Service>...</Service>를 하나 더 만들어 버리면 된다. 위의 코드를 복사한 다음 server.xml 에 추가한다. 그리고 빨간색으로 표시한 부분만 수정하자.
<Service name="
Catalina2">
<Connector port="9090" protocol="HTTP/1.1"
maxThreads="150" connectionTimeout="20000"
redirectPort="8443" />
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="
Catalina2" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
<Host name="localhost" appBase="d:/webapps/myweb2"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
</Host>
</Engine>
</Service>
다른 웹어플리케이션을 돌리기 위해 서비스를 하나 더 추가한 것이다.
port="9090" 은 새로 추가하고 싶은 포트이다.
appBase="d:/webapps/myweb2"는 9090 포트에서 돌아갈 웹사이트 위치이다.
이제 server.xml 설정은 끝난 것이다.
마지막으로 웹사이트의 ROOT 디렉토리를 지정해주자. 아래의 폴더를 생성한다.
d:/webapps/myweb2/ROOT/ (
d:/webapps/myweb2/ROOT/WEB-INF/
(WEB-INF 폴더를 만들고 web.xml 파일을 추가한다. 그냥 /TOMCAT_HOME/webapps/ROOT/WEB-INF/에 있는 web.xml 을 복사하면 된다.
무지 간단하다. 하지만 난 이 간단한 것을 위해서 하루종일 삽질해야만 했다. 검색해 보아도 문서는 많은데 실제 도움이 될만한 것이 별로 없었다.
테스트하기 위해 ROOT/index.html 또는 index.jsp를 만든다.
이제 톰캣을 재시작하고 웹브라우저로 접속해 보자.
http://localhost:8080
http://localhost:9090
출처 :
http://dbdb.tistory.com/rss+++++
ROOT 디렉토리의 이름을 바꾸고 싶다면
<Host name="localhost" appBase="d:/dev/myweb">
<Context path="" docBase="d:/dev/myweb"/> <!-- 추가-->
</Host>
날도 더운데 우띠 -- . 덕분에 그냥 켜놓키만 했는데도 cpu 온도가 60을 상회했다. 해서,
구글신에게 도움을 요청했다.
내 경우 아래 3번 방법으로 해결이 됐다.
원문: http://blogs.msdn.com/cyrusn/archive/2004/05/31/145044.aspx
re: HelpSvc.exe has gone insane!!
start -> run -> net stop helpsvr.exe
you mus also then Rebuild the Help Centre service.
Help and Support
Update:
This issue can occur if one or more of the PCHealth components in your
computer are damaged.
To resolve this issue:
1. It is important to note if you have recently made alterations to your
computer before this problem occurred, or if the Help and Support Center
ever worked correctly. If you have recently made alterations to your
computer before this problem occurred, try to undo the changes you made or
uninstall the hardware or software that could have caused the issue. After
you do so, test to determine if the issue is resolved, and if it is, skip
the remaining steps. If the issue is not resolved, continue to the next
step.
2. Remove the .cab files from the Packagestore folder, and then rebuild the
original Help and Support Center:
a. Click Start, click Run, type "cmd" (without the quotation marks), and
then click OK to open a command prompt. Type "net stop helpsvc" (without
the quotation marks), and then press ENTER.
b. Type "cd /d windir\pchealth\helpctr" (without the quotation marks),
where windir is the Windows folder, and then press ENTER.
c. Type "rd packagestore /s /q" (without the quotation marks), and then
press ENTER.
d. Type "cd binaries" (without the quotation marks), and then press
ENTER.
e. Type "start /w helpsvc /svchost netsvcs /regserver /install" (without
the quotation marks), and then press ENTER.
f. If any of the following processes are running, stop them:
helpsvc.exe
helphost.exe
helpctr.exe
To stop a process, right-click the taskbar, and then click Task
Manager. Click the Processes tab, click the process you want to stop, and
then click End Process.
g. At the command prompt, type "net start helpsvc" (without the
quotation marks), and then press ENTER.
3. If the Help and Support Center has not been customized by an OEM, skip
to the next step. If the Help and Support Center has been customized by an
OEM, completely refresh the Help and Support Center:
a. Click Start, click Run, type "cmd" (without the quotation marks), and
then click OK to open a command prompt. Type "net stop helpsvc" (without
the quotation marks), and then press ENTER.
b. Type "cd /d windir\pchealth\helpctr" (without the quotation marks),
where windir is the Windows folder, and then press ENTER.
c. Type "rd packagestore /s /q" (without the quotation marks), and then
press ENTER.
d. Type "rd installedskus /s /q" (without the quotation marks), and then
press ENTER.
e. Type "cd binaries" (without the quotation marks), and then press
ENTER.
f. Type "start /w helpsvc /svchost netsvcs /regserver /install" (without
the quotation marks), and then press ENTER.
g. Type "start /w helpsvc /register" (without the quotation marks), and
then press ENTER.
h. If any of the following processes are running, stop them:
helpsvc.exe
helphost.exe
helpctr.exe
To stop a process, right-click the taskbar, and then click Task
Manager. Click the Processes tab, click the process you want to stop, and
then click End Process.
i. At the command prompt, type "net start helpsvc" (without the
quotation marks), and then press ENTER.
NOTE: The preceding procedure should not negatively affect an
OEM-customized Help and Support Center. However, it does remove any other
.cab files from the Packstorage folder, such as the Windows XP support
tools (which adds their table of contents into the Help and Support
Center).
4. If the preceding steps do not resolve the issue, use the Windows XP
CD-ROM to start your computer, and then run a repair (in-place upgrade)
installation.
Please be aware that even with SP2, the problem may still exist (40% chance of this).
If your in the u contact microsoft give them this case# SRQ050625600160
The problem still may exist because of problems with the Help file in c:/windows/prefact/ (cant remember the file name but its help sumin .exe) as well as problems in c:/windows/inf folder and the c:/windows/ime
there are 4 causes for problem...
1 - when installing pc o.s. the setup installed wrong code
2 - corruption of files
3 - windows xp no sp and windows xp sp1 upgraders to sp2 may have had a configuration error when updating causing conflicts
4 - the svchost is corrupted or damaged
레지스트리 변경을 이용한 다른 방법
http://blog.sisul.or.kr/blog.log.view.screen?blogId=154&logId=890