상세 컨텐츠

본문 제목

아파치2.2 + 톰캣6.0 연동 설정

Java/Apache

by 탑~! 2012. 12. 14. 09:41

본문

아파치2.2 + 톰캣6.0 연동 설정  
APACHE update: ------------------------------------------------------------------------------------------------------------
Apache download: http://httpd.apache.org/
Latest version
        http://httpd.apache.org/download.cgi
 ** 윈도우 비스타에서는 아파치 서버가 제대로 설치가 되지 않는다
    설치시에는 별 이상없이 설치가 완료되지만 실제로 서버를 구동하면 에러가 발생한다
    비스타에는 UAC란 장치가 있는데 이 UAC가 윈도우의 중요폴더(Windows , Program Files, root)의 파일의 권한(읽기,쓰기 등)을 
    제한시켜 아파치 서버 설치시 설정한 값들이 반영이 되지 않는다
    설치시에 아파치 설치 폴더를 Program FIles 가 아닌 다른 폴더로 변경한다
 Apache HTTP Server 2.2.14: apache_2.2.14-win32-x86-no_ssl.msi
 install:
  1. 다운로드 받은 파일 apache_2.2.14-win32-x86-no_ssl.msi을 실행하여 설치를 진행한다
  2. 라이센스 및 라이센스 동의 화면 I accept ... 를 선택
  3. 아파치 운용에 관한 개요 및 설명에 관한 내용
  4. 도메인, 서버, 포트에 대한 설정 화면 
     Network Domain = localhost, Server Name = localhost, Email Address = admin@localhost로 지정한다
  5. 설치 옵션 화면 경로 변경을 위해서 Custom을 선택한다
  6. 설치 경로를 기본 설정인 c:\Program Files\Apache Software Foundaion\Apache2.2\에서
     c:\apache2.2로 변경한다
  7. install을 완료한다
  
 config 수정:
  1. 아파치 서버의 설치가 완료되면 웹서버가 실행되며 모니터링 툴이 트레이 아이콘으로 생성된다
     트레이 아이콘을 오른쪽 버튼을 클릭하여 Open Apache Monitor를 선택하면 아파치 웹 서버의 상태 및 (재)기동/중지등 
     기본적인 관리를 할 수 있다
  2. 아파치 웹 서버가 동작하고 있는 상태인 경우 주소 입력창에 localhost를 입력하면 It Works가 표시된다
     ** 아파치 웹 서버의 루트 디렉토리(홈 디렉토리)는 아파치 설치 폴더의 htdocs이다
        c:\Apache2.2\htdocs 폴더가 루트 디렉토리가 되며 해당 폴더안에 있는 index.html 파일이 보여지게 된다 
        index.html파일을 수정해 보면 localhost의 첫 화면이 변경되어 지는 것을 확인할 수 있다
        콘솔창에서 Apache 실행시키기 위해서는 /Apache 가 설치된 폴더/bin 이동해서 httpd -k start(restart, stop) 
        를 실행하면 된다
 service 설정:
  1. Apache Service Monitor 툴에서 Services 버튼을 클릭하여 윈도우의 서비스 관리도구를 실행한다
     시작 → 제어판 → 관리도구 → 서비스를 이용하여 서비스 윈도우를 실행한다
  2. 서비스 윈도우에서 서버가 실행중이면 Apache2.2 항목의 시작 유형(자동)으로 표기되어 있습니다
     시작 유형이 자동인 경우는 윈도우의 시작과 함께 해당 서비스 즉, Apache가 자동으로 실행됨을 의미한다
     시작 유형을 수동으로 해놓으면 아파치 웹 서버는 윈도우 시동과 함게 실행되지는 않으며 
     사용자에 의해 실행되어 질 수 있다
  3. 시작프로그램에 등록되어 있는 Monitor Apache Servers를 제거해 주면 윈도우 시작과 함께 실행되는 
     Apache Service Monitor를 제거할 수 있다
Tomcat 연동
        Tomcat:                     http://tomcat.apache.org/download-60.cgi
        Tomcat Connectors (mod_jk): http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/
        apache-tomcat-6.0.24.exe (Tomcat 6.0 requires JRE 5.0 or later)
        apache-tomcat-5.5.28.exe (Tomcat 5.5 requires JRE 5.0 by default)
        jk-1.2.28/mod_jk-1.2.28-httpd-2.2.3.so
 ** tomcat-5.5.28, jk-1.2.28
           tomcat-6.0.24, jk-1.2.28은 정상적으로 동작한다
 ** 톰캣 서버 설정: http://localhost:8080/manager/html
    암호는 c:\Program Files\Apache Software Foundation\Tomcat x.x\conf\tomcat-user.xml에서 지정한다
    <tomcat-users>
  <user name="admin" password="xxxx" roles="admin,manager" />
    </tomcat-users>
        install:
  1. apache-tomcat을 실행 한다
  2. 제어판의 Apache Tomcat이 자동으로 설정되게 Tomcat Service 체크한다
     iis 80 port와 충돌나지 않게 http connect port는 8080으로 지정한다
     administrator login의 user name=admin, password=xxxx를 지정한다
     jre 경로를 지정할때 자신이 원하는 버전의 jre 경로인지 확인을 한다
     ** 5.0: C:\Program Files\Java\jre1.5.0_22
        6.0: C:\Program Files\Java\jre6
 setup 1:
  ** xml 태그는 대소문자를 구분하기 때문에 주의해야 한다
  1. mod_jk-1.2.28-httpd-2.2.3.so를 Apache WebServer가 설치된 폴더의 modules 디렉토리에 복사한다
     ** 버전이 변경되면 conf 파일을 일일이 수정해야 하기 때문에 mod_jk.so로 파일 이름을 변경해서
        사용하기도 한다
  2. Apache Webserver가 설치된 폴더\conf에서 httpd.conf 수정
     중간에 LoadModule 설정부분의 마지막에 추가한다
       
   LoadModule jk_module modules/mod_jk-1.2.28-httpd-2.2.3.so
   <IfModule mod_jk.c>  --> (ifmodule)
    JkWorkersFile conf/workers.properties  
    JkLogFile     logs/mod_jk.log  
    JkLogLevel    info
    JKMount --.jsp ajp13
    JKMount /servlet-- ajp13
    <!-- JkMountFile   conf/uriworkermap.properties -->
   </IfModule>
  3. Apache Webserver가 설치된 폴더\conf에 workers.properties 파일을 새로 만든다
   worker.list=ajp13
   worker.ajp13.port=8009
   worker.ajp13.host=localhost
   worker.ajp13.type=ajp13
  <!--
  4. Apache Webserver가 설치된 폴더\conf에 uriworkermap.properties 파일을 새로 만든다
   --.jsp=ajp13
   /servlet--=ajp13
  -->
  5. 아파치 웹서버의 root 디렉토리를 tomcat 경로와 일치시킨다
   Apache Webserver가 설치된 폴더\conf에서 httpd.conf를 열어
   DocumentRoot "c:\inetpub\wwwroot"와
          <Directory "c:\inetpub\wwwroot"> 
          </Directory>를 
   변경한다
          ** tomcat에서는 jsp, servlet만 실행하고 나머지 파일들은 apache 웹서버에서 처리하게 한다
  6. 톰캣이 설치된 폴더의 conf\server.xml에서 Context를 추가한다
   <host>
   -> <Context path="" docBase="c:\inetpub\wwwroot" debug="0" reloadable="true" />
   </host>
  7. 6.x이상 부터는 tomcat 홈\conf의 context.xml의 <Context>를 수정한다
     org.apache.catalina.servlets.invokerServlet이 독점 클래스로 바뀌었다
      <Context> -> <Context privileged="true" reloadable="true">
      </Context>
  8. 톰캣이 설치된 폴더의 conf\web.xml의 막은것을 푼다
   <!--
                 <servlet>
    <servlet-name>invoker</servlet-name>
           <servlet-class>
     org.apache.catalina.servlets.InvokerServlet
                                </servlet-class>
                         <init-param>
                          <param-name>debug</param-name>
                   <param-name>0</param-name>
                                </init-param>
                         <load-on-startup>2</load-on-startup>
           </servlet>
    -->
                  <!--
           <servlet-mapping>
    <servlet-name>invoker</servlet-name>
    <url-pattern>/servlet--</url-pattern>        
                  </servlet-mapping>
                  -->
 setup 2:
  1. mod_jk-1.2.26-httpd-2.2.4.so를 Apache WebServer가 설치된 폴더의 modules 디렉토리에 복사한다
     ** 버전이 변경되면 conf 파일을 일일이 수정해야 하기 때문에 mod_jk.so로 파일 이름을 변경해서
        사용하기도 한다
  2. Apache Webserver가 설치된 폴더\conf에서 httpd.conf 수정
     중간에 LoadModule 설정부분의 마지막에 추가한다
   LoadModule jk_module modules\mod_jk.so
     맨 밑에 추가한다
   Include conf\mod_jk.conf 
  3. Apache Webserver가 설치된 폴더\conf에 mod_jk.conf 파일을 새로 만든다
   JkWorkersFile "C:\Apache Webserver가 설치된 폴더\conf\workers.properties"
   JkLogFile "C:\Apache Webserver가 설치된 폴더\logs\mod_jk.log"
   JkLogLevel info
   JkMount --.jsp ajp13
   JkMount /servlet-- ajp13
  4. Apache Webserver가 설치된 폴더\conf에 workers.properties 파일을 새로 만든다
   worker.list=ajp13
   worker.ajp13.port=8009
   worker.ajp13.host=localhost
   worker.ajp13.type=ajp13
  5.
  6.
  7.
  8. setup1의 방법과 동일
  ----------------------------------------------------------------------------------------------------------------
                 2. Apache WebServer 환경설정 
             Apache WebServer 환경 설정 파일은 /Apache WebServer 설치 폴더/conf 디렉토리에 httpd.conf 파일 편집
    ** tomcat 연동 모듈이 어디에 설치되어 있는지 Apache WebServer에게 인식시킨다
       LoadModule jk_module modules/mod_jk.so (모듈을 로드 하겠다는 의미)   
       include conf/mod_jk.conf (환경 설정파일을 포함)               
   3. tomcat 컨테이너에 웹 루트 어플리케이션 디렉토리가 어디에 탑재되어 있는지, 설정파일은 어디에 있는지, 
      기타 설정에 대한 파일은 외부 파일로 따로 작성하여 /Apache WebServer 설치 폴더/conf 디렉토리 밑에 
      mod_jk.conf 이름으로 만들어서 저장한다
    ** JkWorkersFile "C:/Server/Apache2.2/conf/workers.properties"
       JkLogFile "C:/Tomcat 6.0/logs/mod_jk.log"
       JkLogLevel error
       JkAutoAlias "C:/WorkSpace/tonkjsp"  <- 웹 루트 어플리케이션 디렉토리(작업 폴더 입니다.)
       JkMount -- ajp13
       JkUnmount --.php ajp13
       <Directory "C:/WorkSpace/tonkjsp">
     Options Indexes FollowSymLinks allow from all
       </Directory>
       JkWorkersFile: tomcat 컨테이너와 port 통신을 위한 설정  
       JkLogFile:     로그 파일 위치를 지정
       JkLogLevel:    로그 라벨을 지정 
                      error 있을테고 info 등등
       JkAutoAlias:   자동으로 tomcat 컨테이너에 탑재된 웹 어플리케이션 지정
       JkMount:       어떤url 패턴으로 서버하고 연결시킨 것인지 결정
                      --.jsp 를 하게되면 jsp 호출시 아파치가 톰캣서버를 호출
        -- 이렇게 하게되면 모든 url 호출시 톰캣서버를 호출
       JkUnmount:     해당 url 패턴으로 톰캣서버를 호출하지 못함
       Directory:     웹에서 접근자에 대한 옵션을 지정
   4. Apache 웹서버와 tomcat 컨테이너와 통신을 하기 위한 포트 설정 부분을 별도의 파일로 따로 작성하여 
      /Apache WebServer 설치 폴더/conf 디렉토리 밑에 workers.properties 이름으로 만들어서 저장한다
    ** work.list=ajp13
       worker.ajp13.port=8009
       worker.ajp13.host=localhost
       worker.ajp13.domain=www.tonkjsp.com
       worker.ajp13.type=ajp13
  ----------------------------------------------------------------------------------------------------------------
            
Tip
 1. 윈도우 비스타에서 Apache와 Tomcat을 연동할때 Unable to open the service 'TomcatX'라는 에러 메시지가 나오는 경우
  ** 제어판 -> 사용자 계정 -> 사용자 계정 컨트롤 사용/사용 안함 -> 사용자 계정 컨트롤을 사용...을 uncheck한 다음
     컴퓨터를 다시 시작한다
 2. 컴퓨터 시작시 아파치 웹서버의 실행이 좀 늦어질 수 있다^


출처 : http://fillrider.egloos.com/37210

'Java > Apache' 카테고리의 다른 글

Apache Commons IO 라이브러리  (0) 2013.03.27
JDBC 접속시 파라미터 값 설정  (0) 2012.12.14
Apache 설정 파일 httpd.conf 요약  (0) 2012.12.14
WebLogic 8.X 설정  (0) 2012.10.11

관련글 더보기