본문 바로가기

Java/Jsp

Apach + Tomcat 연동

 

참고사이트 : http://kyuhyuk.kr/m/post/331

                  http://blog.pages.kr/69

                  http://blog.naver.com/PostView.nhn?blogId=forioso&logNo=10155247917

                  http://iplus.tistory.com/236

 

1. http://www.apache.org/에 접속한뒤 Download를 클릭합니다.

2. 미러사이트로 접속합니다.

3. /httpd/binaries/win32 폴더로 들어가 httpd-2.2.25-win32-x86-openssl-0.9.8y.msi를 다운로드하고, 설치합니다.

4. http://tomcat.apache.org/에 접속한뒤, Download에 있는 Tomcat 7.0을 클릭합니다.

5. 32-bit/64-bit Windows Service Installer를 클릭하여 다운로드하고 설치합니다.

 

 

• Apache2.2와 Tomcat 7.0 연동하기

 

1. Apache와 Tomcat을 연동하려면 Tomcat Connectors(mod_jk)가 필요합니다.

http://tomcat.apache.org/download-connectors.cgi에서 다운로드합니다.

 

※ 참고

 

mod_jk의 버전과 apache의 버전이 맞지 않을 경우 apache를 실행했을때 아래와 같은 에러를 만날 수도 있습니다.

 

"The requested operation has failed!"

 

그래서 저는 Binary Releases 에서 apache 버전에 맞는것을 다운받았습니다.

 

apache가 제대로 실행이 안될 경우 설치된 디렉터리에서 httpd.exe -e debug 를 실행하면 로그를 볼 수 있습니다.

 

위의 첨부파일의 압축을 풀고 mod_jk.soApache가 설치된 곳에 있는 modules에 복사합니다.

 

2. Apache2.2\conf\httpd.conf를 수정합니다.

DocumentRoot "아파치 설치경로/Apache2.2/htdocs" 부분을 WebRoot 경로(ex. DocumentRoot "D:/webapp")로 변경합니다.

 

<Directory "아파치 설치경로/Apache2.2/htdocs" > 부분을 <Directory "D:/webapp">로 변경합니다.

 

LoadModule jk_module modules/mod_jk.so

 

# mod_sk.conf

Include conf/mod_jk.conf

도 추가하고 저장합니다.

 

3. Apache2.2\conf에 mod_jk.conf를 생성하고 아래와 같이 입력합니다.

 

JkWorkersFile "아파치 설치경로/Apache2.2/conf/workers.properties"

JkLogFile "아파치 설치경로/Apache2.2/logs/mod_jk.log"

JkLogLevel error

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

JkRequestLogFormat "%w %V %T"

JkMount /*.jsp ajp13

JkMount /*.do ajp13

 

4. Apache2.2\conf에 workers.properties를 생성하고 아래와 같이 입력합니다.

 

worker.list=ajp13

 

worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13

 

5. 이제 Tomcat이 설치된 폴더에 있는 conf 폴더로 이동합니다.
conf 폴더에 있는 server.xml 파일을 수정합니다.

 

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

부분을 아래와 같이 수정합니다.

<Host name="localhost"  appBase="D:/webapp" unpackWARs="true" autoDeploy="true">

 

그러면 D:\webapp\ROOT 폴더 밑에 있는 파일들이 실행됩니다.

 

이것을  D:/webapp 에 있는 파일들이 실행되도록 하려면 Tomcat 설치 경로 밑에 conf/Catalina 에 보면 Host의 name 속성에 있는 값으로 생성된 폴더를 보실 수 있습니다.

 

이 폴더 밑에 ROOT.xml 파일을 아래와 같이 생성하면 됩니다.

<?xml  version="1.0" encoding="UTF-8"?>

<Context crossContext="true" path="" docBase="D:/webapp" reloadable="true">

</Context>

 

• 멀티도메인 셋팅

1. Apache2.2\conf\httpd.conf를 수정합니다.

  - DocumentRoot 부분을 주석처리 함. (가상 호스트(conf/extra/httpd-vhosts.conf) 구축을 위함)

  - #Include conf/extra/httpd-vhosts.conf 부분의 주석(#) 제거

  - <Directory />
     Options FollowSymLinks
     AllowOverride None
     Order deny,allow
     Deny from all <--- 삭제
     Allow from all <--- 추가
   </Directory>

2. Apache2.2\conf에 mod_jk.conf에서 아래 2라인을 삭제합니다.(conf/extra/httpd-vhosts.conf로 이동)

 

JkWorkersFile "아파치 설치경로/Apache2.2/conf/workers.properties"

JkLogFile "아파치 설치경로/Apache2.2/logs/mod_jk.log"

JkLogLevel error

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

JkRequestLogFormat "%w %V %T"

JkMount /*.jsp ajp13

JkMount /*.do ajp13

 

3. Apache2.2\conf에 workers.properties를 수정합니다.

 

worker.list=worker1, worker2
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13

 

worker.worker2.port=8009
worker.worker2.host=localhost
worker.worker2.type=ajp13


 

4. conf/extra/httpd-vhosts.conf를 수정합니다.

 

<VirtualHost *:80>
    ServerAdmin id@mail.com                            <= 메일주소
    DocumentRoot "D:/webapp1" <= 웹소스 경로
    ServerName www.mydomain1.com                       <= 도메인 
    ServerAlias mydomain1.com                <= 도메인 Alias (생략가능)
    ErrorLog "logs/.mydomain1.com-error.log"
    CustomLog "logs/.mydomain1.com-access.log" common
    JkMount /*.jsp worker1                                 <= mod_jk.conf 에 있던 Mount정보
    JkMount /*.do worker1                                  <= mod_jk.conf 에 있던 Mount정보
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin id@mail.com                            <= 메일주소
    DocumentRoot "D:/webapp2" <= 웹소스 경로
    ServerName www.mydomain2.com
    ServerAlias mydomain2.com
    ErrorLog "logs/.mydomain2.com-error.log"
    CustomLog "logs/.mydomain2.com-access.log" common
    JkMount /*.jsp worker2
    JkMount /*.do worker2
</VirtualHost>

 

5. 이제 Tomcat이 설치된 폴더에 있는 conf 폴더로 이동합니다.

conf 폴더에 있는 server.xml 파일에 아래 내용을 추가합니다.

 

<Host name="www.mydomain1.com"  appBase="D:/webapp1"
            unpackWARs="true" autoDeploy="true">
 <Alias>mydomain1.com</Alias>
</Host>

<Host name="www.mydomain2.com"  appBase="D:/webapp2"
            unpackWARs="true" autoDeploy="true">
 <Alias>mydomain2.com</Alias>
</Host> 

 

 

 

크리에이티브 커먼즈 라이선스
Creative Commons License