일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- IntelliJ
- ubuntu
- MSSQL
- JavaScript
- 설정
- Python
- Spring Boot
- Open Source
- Core Java
- Source
- 문서
- 오픈소스
- Docker
- Tomcat
- git
- STS
- Exception
- myBatis
- Eclipse
- error
- spring
- SpringBoot
- maven
- PostgreSQL
- oracle
- MySQL
- JDBC
- AJAX
- Thymeleaf
- jpa
- Today
- Total
헤르메스 LIFE
[Server] Apache + Tomcat 연동 본문
1. 프로그램 다운로드 ( 현재 2010년 9월 17일)
Apache 2.2.16 : http://httpd.apache.org/download.cgi#apache22
Tomcat 6.0.29 : http://tomcat.apache.org/download-60.cgi
Tomcat Connectors JK 1.2.30 : http://ftp.apache-kr.org/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.30/
※ Binary Releases 를 다운로드 합니다.
JDK 1.6.0_21 : http://www.oracle.com/technetwork/java/javase/downloads/index.html
2. 설치 - 특별히 어렵지 않으므로 패스 ㅡㅡㅋ
Apache : 설치 중 Domain, 이메일 등은 임의 작성합니다. (설정변경 가능)
설치 후 서버가 실행되지 않는다면 httpd.conf의 SERVERNAME 주석을 해제하고,
80번 Port의 점유 프로세스를 제거 한 후 재시작합니다.
정상 설치 후 테스트 : 브라우져에서 http://localhost 를 실행하면 아래의 화면이 보입니다.
Tomcat : 압축을 풉니다.
실행 : %CATALINA_HOME%\bin\startup.bat
정상 설치 후 테스트 : 브라우져에서 http://localhost:8080 를 실행하면 아래의 화면이 보입니다.
JDK : 설치합니다.
%JAVA_HOME%\bin 을 classpath에 추가합니다.
환경변수에 JAVA_HOME을 설정합니다.
3. Apache + Tomcat 연동
3.1 Apache 설정
3.1.1Httpd.conf 설정
ServerName을 변경합니다.
Installer에서 임의로 설정한 ServerName은 서버설정에 맞게 변경한다.
%APACHE_HOME%\conf\Httpd.conf
# local이 아닌경우 IP나 Domain Name을 입력합니다. ServerName localhost:80 |
DirectoryIndex에 index.jsp 를 추가합니다.
%APACHE_HOME%\conf\Httpd.conf
<IfModule dir_module> DirectoryIndex index.jsp index.html </IfModule> |
주석을 제거한다.
%APACHE_HOME%\conf\Httpd.conf
#LoadModule ssl_module modules/mod_ssl.so #다운받은 mod_jk-1.2.30-httpd-2.2.3.so 파일을 mod_jk.so 이름을 변경한다. |
mod_jk.conf 추가
#Include를 검색하여 아래 내용을 추가합니다. |
3.1.2 mod_jk.conf 생성
# Apache와 tomcat연동에서 동적인 페이지만 tomcat에 넘기도록 설정한다. JkLogFile logs/mod_jk.log <IfModule !mod_jk.c> <VirtualHost www.autoplus.co.kr> <Directory "C:\workspace\project\web"> # JkMount /* worker1 RewriteEngine on |
3.1.3 workers.properties 생성
workers.tomcat_home=[Tomcat HOME의 절대경로]\Tomcat-6.0.29 worker.list=worker1, status worker.worker1.port=8009 worker.status.type=status |
3.1.4 uriworkermap.properties 생성
/jkstatus=status |
옵션 : 하단에 아파치의 상태를 모니터링 할 수 있도록 추가할 수 있습니다.
%APACHE_HOME%\conf\Httpd.conf
ExtendedStatus On <Location /server-status> SetHandler server-status Order Deny,Allow <- 실행순서 Deny from all Allow from 127.0.0.1 111.111.111.111 <-- 접근허용할 IP </Location> |
모니터링은 url에 /server-status를 붙인다.
3.2 Tomcat 설정
3.2.1 Server.xml 수정
AJP 1.3 Connector on port 8009 확인합니다. (주석으로 묶여 있으면 풀어주세요.)
%TOMCAT_HOME%\conf\Server.xml
<!-- Define an AJP 1.3 Connector on port 8009 --> |
Engine의 defaultHost를 localhost에서 기본host로 변경한다.
기존의 Host name을 localhost에서 설정에 맞는 Host name으로 변경하고 필요한 <Host></Host>를 추가한다.
<Resource 에 Resource범위를 공유하지 않도록scope="Unshareable" 속성을 추가한다.
<Engine name="Catalina" defaultHost=" localhost"> |
3.2.2 Tomcat의 오류
문제는 Tomcat의 Startup.bat 실행 시 오류가 발생한다는데 있습니다.
host-manager 폴더와 manager 폴더가 없다는 겁니다.
Tomcat 5.5 버젼에서는 아래와 같은 오류가 발생하지 않았습니다.
6.x 버젼으로 버젼업되면서 뭔가가 달라졌다는 얘기인 듯 한데..
문제만 있지 해결방법은 없더군요.. ㅡㅡ;; (우리의 Naver와 Google에도 OTL...
제가 영어가 짧아서 못 찾았을 수도 있습니다. ^^;;)
심각: Error starting static Resources at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.ja at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445 |
일단의 해결방법은 appBase 에 있습니다.
Tomcat은 appBase를 "webapps"를 기본으로 하고 있습니다.
정확하게는 Tomcat 6.x버젼부터는 %CATALINA_HOME%\webapps\host-manager 폴더와 manager 폴더를
찾고 있다는게 맞는것 같습니다. ( 찍었습니다. ㅡㅡㅋ )
문제는 기본으로 되어있는 webapps 폴더를 그대로 놔두면 Apache와 Tomcat의 연동이 원할하지 않다는 겁니다.
아래의 그림1을 보시면 localhost는 Apache의 index.html 이 실행된 그림입니다.
그 아래의 그림2는 Tomcat의 index.jsp가 실행된 모습입니다.
(appBase="webapps" 로 하고 적용한 모습니다. 위의 오류는 발생하지 않습니다.)
[그림 1]
[그림 2]
이렇게 되면 안됩니다. OTL
왜냐하면 전 Tomcat의 WEB ROOT를 변경하고 싶기 때문입니다.
이런 실행화면은 Server.xml의 docBase를 변경한 의미가 없습니다.
(그림2의 모습은 Tomcat webapps 폴더의 ROOT 폴더의 index.jsp가 실행된 모습니다.)
그래서 꽁수를 생각해 낸것이 appBase에 docBase의 경로를 넣는 것입니다.
위의 Server.xml 설정에서 appBase="[WAS의 WEB Root]"라고 설정한 이유입니다.
이렇게 설정하고, [WAS의 WEB Root]폴더아래에 %CATALINA_HOME%\webapps\host-manager 폴더와
manager 폴더를 [WAS의 WEB Root] 아래에 복사합니다.
이렇게하고 다시 Apache와 Tomcat을 재시작하면 위의 오류도 나타나지 않습니다.
또 다른 방법이 제가 잘못한 내용이 있다는걸 발견하신분은 제발 원인 좀 갈켜주세요.
아마도 Tomcat 6.x의 WEB Root 변경은 이런 방법 아니면 어려울 것 같습니다.
'Server' 카테고리의 다른 글
[JBoss] JBoss 6 설치 (0) | 2012.05.07 |
---|---|
[Tomcat] Tomcat7 설치 - 톰켓 Admin 툴 (0) | 2012.04.19 |
[Weblogic] weblogic.xml 셈플 (0) | 2011.09.05 |
[JDBC] Tomcat MS-SQL JDBC 설정 (0) | 2010.10.13 |
[Tomcat] Setting property 'source' to 'org.eclipse.jst.jee.server:프로젝트명' did not find a matching property. 같은 형태로 심각한 메세지가 출력되는 경우의 해결 방법 (0) | 2010.08.06 |