본문 바로가기
서버구축 (WEB,DB)

Tomcat 컨테이너와 Apache 웹서버 연동

by 날으는물고기 2009. 1. 2.

Tomcat 컨테이너와 Apache 웹서버 연동

▶ Tomcat 컨테이너와 Apache 웹서버 연동 구조도 (연동전에 알고 가야할 사전 지식)

- Tomcat 컨테이너와 Apache 웹서버 관계(연동전에 알고 가야할 사전 지식)

▶ 웹 서버(Web Server) 역할 (연동전에 알고 가야할 사전 지식)

웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지에서 흔히 찾아 볼 수 있는 자료 콘텐츠에 따라 HTTP에 반응하는 컴퓨터 프로그램이라고 할 수 있다.

▶ 웹 어플리케이션 서버(WAS, Web Application Server) (연동전에 알고 가야할 사전 지식)

웹과 기업의 기간 시스템 사이에 위치하면서, 웹 기반 분산 시스템 개발을 쉽게 도와주고 안정적인 트랙잰션 처리를 보장해 주는 일종의 미들웨어 소트웨어 서버.

3계층 웹 컴퓨팅 환경에서 기존 클라이언트/서버 환경의 애플리케이션 서버와 같은 역할을 하며, 클라이언트와 서버 환경에서 트랜잭션 처리및 다른 기존 시스템 간의 애플리케이션 연동을 등을 주된 기능으로 하고 있다.

요즘들어서는 WAS는 주로 데이터베이스 조회나 일반적인 비즈니스 로직에 대한 처리를 위해 다양한 언어로 개발된 인터넷/인트라넷 환경의 소프트웨어로 많이 불리운다. 자바스크립트나 JSP 등과 같은 스크립트 및 서비스들은 대개 최신의 데이터를 검색하기 위해 데이터베이스에 접근하고, 브라우저 또는 클라이언트 프로그램을 통해 사용자들에게 검색 결과를 제공한다.

WAS를 비롯한 애플리케이션 서버들은, 웹서버 즉 HTTP 서버와 같은 컴퓨터를 공유할 수도 있지만 별개의 컴퓨터를 독립적으로 사용하는 경우도 많다. 대규모 사이트에서는, 오히려 WAS와 웹서버 등을 위해 여러 대의 컴퓨터가 동원되기도 한다.
넷스케이프의 Netscape Application Server, Bea의 Weblogic Enterprise, 볼랜드의 Appserver, 그리고 IBM의 Websphere Application Server 등의 WAS 대표적인 제품들이다.

▶ Web Server와 WAS와 차이 (연동전에 알고 가야할 사전 지식)

- Web Server 의 정의 : Web Client(웹 브라우저)에게 컨텐츠를 제공하는 서버, 정적인 HTML이나 jpeg, gif 같은 이미지를 HTTP
   프로토콜을 통해 웹 브라우저에게 전송하는 역할 (WebToB)

- WAS(Web Application Server)의 정의
   ○ Server 단에서 Application을 동작할 수 있도록 지원함 => Jeus
   ○ 기존 웹 서버와 달리 동적인 요구에 대응하기 위해 적합한 형태로 변화, Web Client(브라우저)에게는 결과값만 전송함.
   ○ Container(컨테이너)라는 용어로 쓰이며, 초창기는 CGI, 그 후에서는 Servlet, , JSP, ASP 등의 프로그램으로 사용됨

- Web Server와 WAS의 구성에 따른 분류
   ○ WAS와 WebServer를 분리하지 않는 경우 
   모든 컨텐츠를 한곳에 집중시켜 웹서버와 WAS의 역할을 동시에 수행, 스위치를 통한 로드 밸러싱, 사용자가 적을 경우 효율적
 
   ○  WAS와 WebServer를 분리한 경우
   웹서버와 WAS의 기능적 분류를 통해 효과적인 분산을 유도, 정적인 데이터는 웹서버에서 처리, 동적인 데이터는 WAS가 처리
 
   ○  WAS 여러개와 WebServer를 분리한 경우
   WAS단을 프리젠테이션 로직와 비즈니스 로직으로 구분하여 구성, 특정 logic의 부하에 따라 적절한 대응할 수 있지만 설계단
   계 유지보수 단계가 복잡해 질 수가 있다.

▶ WAS 와 Web Server 종류(연동전에 알고 가야할 사전 지식)

- 종류를 구별하여 적기에는 너무 많고 그렇지만 대표적으로 가장 많이 쓰는 것 붙어 정리하면 다음과 같다.
   ○ WAS 종류
   tomcat, tMax jeus, BEA Web Logic, IBM Webspere, JBOSS,Bluestone, Gemston, inprise, Oracle, PowerTier,Apptivity,
   silverStream
   ○ Web Server 
    IIS, apache, tMax, WebtoB

- WAS로 가장 널리 사용하는 tomcat, jeus, webLogic만 알아 보고 Web Server는 IIS, apache만 확인합니다.

   ○ tomcat
       아파치 소프트웨어 재단의 애플리케이션 서버로서, 자바 서블릿을 실행시키고 JSP 코드가 포함되어 있는 웹ㅤㅍㅔㅍ이지를 만들
       어준다. 자바 서블릿과 JSP 규격 '참조용 구현'으로 평가되고 있는 톰캣은, 개발자들의 개방적 협력 작업의 산물로 바이너리
       버전과 코어버전 둘 모두를 아파치 웹사이트에서 얻을 수 있다. 톰캣은 자체적으로 보유하고 있는 내부 웹서버와 함께 독립
       적으로 사용 될 수도 있지만 아파치나 넷스케이프 엔터프라이즈 서버, IIS, 마이크로소프트의 PWS 등 다른 웹서버와 함께 사
       용도리 수도 있다. 톰캣을 실행시키기 위해서는 jre  1.1  이상에 부합되는 자바 런타입 환경이 필요하다.

   ○ Jeus
       JEUS는 국내 기업이 Tmax에서 만든 것으로 제품 오나성도나 지명도에서 떨어진다. 하지만 명성/악명 높은 강력한 기술지
       원력으로 국내 시장에서는 시장 점유율 1위로 올라선지 꽤 됐다.
 
   > 다양한 프리젠테이션 로직 지원
      → Servlet
          동적 HTML 문서 작성을 위한 java 프로그래밍 모델을 지원하며, Servlet 엔진 Multi-threading으로 구현되어 성능이 우수
          하고 , EJB 등과 부드러운 연동이 가능합니다.
      → JSP(Java Server Page)
          Servlet 사용을 통해 웹페이지의 내용이나 모양을 제어하며, 워ㅔㅂ 서버에 의해 실행될 자바 프로그램으러 호출하게 합니
          다.
      → XML
          웹 상에서 구조화된 문서를 전송 가능하도록 설계된 표준화된 텍스트 형식으로, 안전한 전자상거래 구축을 가능하게 하는
          등 웹을 좀 더 다양한 목적으로 이용할 수 있게 합니다.

   > 편리한 비즈니스 로직 지원
      → EJB(Enterprise Java Beans)
          자바 기반의 객체지향 프로그래밍 모델로서 새로운 프로그램 컴포넌트가 추가되거나 변경될 때마다 각 개별 컴퓨터를 갱
          신하지 않고서도 서버에서 ㅤㅂㅕㄶ솨를 통제할 수 있도록 하는 이점을 제공합니다.
 
   > J2EE(Java 2 Enterprise Edtion) 플랫폼과 호환
      → JMS(Java Messaging Service)
          메시지 기반의 프로그래밍 기초를 제공합니다.
      → JNDI(Java Naming and Directory Interface)
          네이밍 서비스를 제공합니다.
      → JTS(Java Trasaction Service)
          이기종 데이터베이스에 걸친 글로벌 트랜잭션을 제공합니다.
      → JDBC(Java Database Connectivity) Connection Pool
          데이터베이스와의 연결을 효율적으로 관리합니다.

   > 부하 조절
      다음과 같은 다양한 부하 조절 방식을 제공합니다.
      → 각 서버(호스트)로의 동적 부하 조절
          서버들의 Load를 실시간으로 수집해 클라이언트의 요청을 처리 가능한 최적읠 서버로 분배하여 부하를 조절합니다.
      → 각 서비스별 처리능력의 동적 조절
          클라이언트 요청의 증가에 따라 각 서비스 루틴의 자동적으로 증가하게 되어 서비스 처리 능력을 동적으로 조절합니다.
      → 하드웨어 성능에 따른 정적 부하 조절
          예를 들자면, 메인프레임급에는 80%의 Load를 , 워크스테이션급에는 20% Load를 배분하는 식으로 하드웨어 성능에 따
          라 부하를 조절 합니다.

    > 장애 대책
      → 서버(호스트)간의 상호 감시
          장애 발생시 서비스를 백업 서버로 이전시켜 중단없는 서비스 처리가 가능합니다.
      → 어플리케이션 프로세스에 대한 감시
          프로세스 모니터가 어플리케이션 프로세스를 감시하여 장애발생시 프로세스를 자동적으로 재시작하게 합니다.
   
    > 다양한 보안 기능 제공
       다음과 같은 다양한 보안 기능들을 사용할 수 있다.
       → Login Name & Password
       → 각 서비스에 대한 Access 권한 제한
       → 클라언트의 IP 어드레스 또는 도메인 제한
       → CA(Certificate Agent)를 통한 사용자 인증
       → SSL(Secure Socket Layer)의 사용
  
    > 편리한 관리자 도구의 제공
       → 리소스 배치를 간편하게 할 수 있습니다.
       → 실시간으로 시스템을 모니터링할 수 있습니다.
       → 멀티 서버(호스트) 시스템을 통합적으로 제어할 수 있습니다.
 
    > WebInOne과의 연동 기능
      JEUS는 WebInOne과 통합하여 사용되어 질 때, CORBA 클라이언트, TP-Monitor 클라이언트 등 다양한 클라이언트들로부터
      서비스 요청을 받아들일수 있게 되며, WebInOne의 다른 구성요수인 WebToB(웹서버), Tmax(TP모니터), CORBA ORB와 함
      께 사용되며 미들웨어 요소들 간에 연동을 필요로 하는 시스템 구성시에 강력한 솔루션을 제공하게 됩니다.

      [출처] Jeus의 기능 | 작성자 사랑지기
      경유 : http://blog.naver.com/you0124861?Redirect=Log&logNo=140055402042

   ○ WebLogic
       웹로직은 미국의 거대 기업인 BEA가 만든 것으로 역사도 길고 제품 완성도도 JEUS 보다 낫다. 가격이 엄청 비쌌지만 요즘
       은 거의 덤핑가로 들어간다.(JEUS 효과라 할 수도 있다.) 기술지원의 속도나 수준이 낮은 것이 국내 상황에서의 최대 단점이
       다.
  
       WebLogic은 Tengah 제품에서 출발한 제품으로 현재 존재하는 어플리케이션 서버를 중에서 J2EE(Java 2 Platform,
       Enterprise Edition)를 가장 잘 지원하는 제품이다. 일찍부터 J2EE의 기느에 해당하는 Servlet, EJB 등을 지원해 왔으며 최신
       버전인 WebLogic 4.5.1은  JSP(Java Server Pages)도 지원한다.

       그리고, 실제로 WebLogic 제품에 대한 Transaction 성능은 테스트 해 보지 못했지만 BEA사의 Tuxedo 제품을 보고 평가할
       때 Transaction 처리에 있어서도 우수한 성능을 발휘할 것으로 예상된다.

       뿐만 아니라, WebLogic 제품의 Clustering 기술에 의해서 Load Balancing과  Failover 기능을 제공해 준다. 클라이언트의
       요청은 현재 가장 Load가 적은 WebLogic Server에 의해서 처리되면 특정 Transaction의 처리 도중 장애가 발생하더라도
       다른 WebLogic Server가 계속해서 Transaction을 처리할 수 있다고 한다.

       이와 같은 Transaction 처리와 Clustering 기술 등의 특징으로 인해 쉽게 확장 가능한( Scalable) 시스템을 구축할 수 있기
       때문에 기업 전산 환경에서 대규모의 시스템을 구축하는데 적합하다.

       WebLogic은 다양한 운영체제에서 운영가능한데 특히 Linux까지 지원하는 것은 주목 할 만한 점이다. WebLogic이 지원하는
       운영 체제들로 아래의 운영체제들이  있다.

       지원 운영 체제 :
       Windows NT, Sun Solaris, HP-UX, IBM AIx, Linux, OS/400, SGI, IRIX
  
       WebLogic 제품의 흡이라면 가격이 1000만원에 달하기 때문에  너무 비싸다는 것이 흠이다. 그리고, WebLogic 제품은 운영
       시스템을 구축하는데는 크게 나무랄 데 없는 제품이지만 WebLogic 제품과 함께 이용할 수 있는 이렇다할 개발 도구가 없기
       때문에 개발 생산성이 크게 떨어진다는 것이 문제점이다. 기껏해야 개발 도구로 이용할 수 있었던 것이 SUN사의 JDK(JAVA
       Development Kit)와 UntraEdit 등과 같은 Editor가 전무이었다. 물론, BEA사는 VisualCafe 등 타회사의 개발 도구를 추천했
       었는데 WebLogic 제품과 밀접하게 통합되어 있지 않기 대문에 적합한 개발 도구라고 할 수 없었다.
       그러나 , BEA사 역시 이러한 문제점을 인식하고 있었던지 최근에 Sematec사의 VisualCafe 사업 부문을 인수하였다. 따라
       서 개발 생산성의 측면은 향후 1,2 년 내에 크게 향상될 것으로 기대되어 WebLogic 제품의 가장 큰 약점이 봉돤될 것으로 예
       상 된다.

   ○ IBM의 WebSphere
       WebSphere는 EJB를 운영할 수 있도록 해 주는 제품이다. WebLogic이 EJB를 포함해서 Servlet, JSP 등의 기능을 하나의
       서버에서 제공하는 제품이라면 WebSphere는 주로 EJB를 운영하기 위해서 사용하고 Servlet과 JSP 등의 기능은 별도의
       Web Server에 의해서 제공된다.
   
       WebSphere와 함께 운영가능한 Web Server 제품들로 IBM HTTP Server, Lotus Dominogo WebServer, Nescape
       Enterprise Server,  MIcrosoft Internet Information Server(IIS) 등이 있다. 이 중에서 IBM HTTP Server는 Apache
       Web Server를 개선한 제품이다.

       WebSphere 역시 다양한 운영 체제들을 지원하는데 아래와 같다.
       지원 운영 체제 :
       Windows NT(v2.0), Sun Solaris(v2.0), IBM AIX(v2.0), IBM OS/390(v1.1), IBM AS/400(v1.1)
   
       WebSphere 2.0에서 EJB를 지원하기 시작했지만 개인적으로 WebSphere를 사용해 본 느낌은  EJB 운영 아직
       환경으로 안정적이지 못하다는 것이다. 정상적으로 잘 수행되던 서비스가 특별한 이유 없이 에러를 발생하는 경우가
       종종  있었다. 최근에 IBM은 WebSphere 3.0을 출시하였는데, 아직 이 제품은 사용해 본 바가 없어서 EJB를 얼마나 잘
       지원하는 지 확인할 수 없는 상태이다.
  
       그러나, WebSphere를  쓸 수 밖에 없는 이유는 Visual Age for Java라는 개발 툴에 있다. Visual Aget for Java는 Servlet,
       JSP, EJB 등을 쉽게 개발할 수 있고 강력한 Debugging 기능과 테스트 환경을 제공해 주며 WebSphere와 밀접하게 통합되
       어 있기 때문이다. 이 밖에도 Visual Age for Java는 기존의 어떤 자바 개발 도구와 비교해도 손색이 없을 것이다. 이와 같은
       강력한 개발 툴의 이용은 개발 생산성을 크게 향상시켜줄 것이다.

       [출처] http://blog.naver.com/you0124861?Redirect=Log&logNo=140055402042

   ○ IIS
       IIS 6.0의 주요 기능들
    
       IIS가 주목받기 시작한 것은 윈도우 NT 4.0의 옵션팩으로 제공된 IIS 4.0 부터라고 할 수 있다. 그리고 윈도우 2000에서는
       기존 버전에 비해 탁월하게 향상된 성능과 윈도우 2000에 포함된 로드밸렁싱 및 클러스터링 기능 그리고 닷컴 회사의 붐
       을 타고 IIS가 가장 많은 웹 사이트를 호스팅하는 웹 서버로서 자리 매김하고 있다. 또한 윈도우 닷센ㅅ 서버와 함께 다양
       한 기능들로 새롭게 무장한 6.0이 등장한 것이다.

   ○ Apache
       Apache HTTP Server Instroduction
       아파치는 1995년 그 당시에 가장 인기 있었던 웹 서버중의 하나인 NCSA HTTP 1.3 버전을 기반으로 탄생하였다. 그 후
       기존의 NCSA 웹 서버에 더욱 향상된 기능들을 탑재하여 Apache 웹 서버를 발표하였다. 현재는 인터넷 웹 서버 중에서
       최고의 인기를 구가하고 있는 이른바 ' 잘 나가는" 소프트웨어 중의 하나이다. 그 이유를 들자면 지속으로 패치파일을
       제공하고 최고의 퍼포먼스를 내고 있기 때문이다. 물론 무료로 제공된다는 점과 많은 마켓쉐어의 점유로 인하여 안정성
       을 인정받았다는 점도 한 이유가 된다. 그리고 Window NT4.0과 95용으로도 Beta 판이 나왔으므로 Unix 환경이 갖추어
       지지 않은 분들은 한번 사용해 보기 바란다. 아파치는  현재까지 1.3b3 까지 나와있으며, 1.2 시르지 테스트 버전이 아닌
       안정된 버젼이다. 만약 여러분들이 1.2 베타나 구버전의 아파치 웹 서버를 사용하고 있다면 안정성이나 시큐리티면에서
       빠른 시일안에서 여러분들의 웹 서버를 업그레이드 또는 패치하기를 권하는 바이다.

       데이터를 저장하고 클라이언트(받는쪽)로 데이터를 전송해주는 물리적인 장치를 서버(보내는쪽)라고 한다.
       하지만 서버가 있다고 혼자 작동하는 것은 아니다. 서버를 구동시킬 수 있는 소프트웨어가 있어야 한다.
       아파치 웹서버도 그중 하나 이다. 서버 프로그램의 종류는 여러가지로 분류할 수 있다.
    
       http로 시작하는.. 인터넷창에서 볼 수 있는 문서들을 저장하고 유저의 브라우저로 전송시켜주는 서버를 웹서버라고 한다.
       파일을 전송할 수 있는 FTP(File Transfer Protocol)서버 메일을 저장하고 전송하는 메일 서버 등 여러가지가 있다.
     
       그 중에 아파치는 웹서버 웹브라우저로 보내는 문서를 저장할 수 있다.
       html뿐 아닌 php(동적인 웹프로그램언어)를 지원할 수 있다. 웹 서버 종류에 따라 사용할 수 있는 프로그램 언어도 다른다.
       아파치는 리눅스 뿐만 아니라 윈도우즈에서도 사용할 수 있다.

       [출처] http://blog.naver.com/you0124861?Redirect=Log&logNo=140055402042
 
▶ Apache 다운로드와 Windows에 설치

http://httpd.apache.org/ 에서 Win32 Binary without crypto (no mod_ssl) (MSI Installer) 다운로드 합니다.

- 위에 사이트에서 Download 받은 화일을 실행시키면 아래와 같은 화면이 뜬다. [Next]를 클릭하자.

-  I accept~ 선택하고 [Next] 클릭.

- 설치 마법사에 대한 내용입니다. [Next] 클릭                                                                            

- Server Information을 입력한후 [Next]를 클릭한다.

① Network Domain :  등록된 서버의 DNS 도메인을 입력한다.
ex> 서버의 전체 DNS 이름이 server.mydomain.net이라면 여기에 mydomain.net을 입력한다.
기본값은  :  "localhost"

Server Name :  서버의 전체 DNS 이름을 입력한다.
ex> server.mydomain.net
기본값은 :   "127.0.0.1"

③ Administrator's Email Address : 서버 관리자나 웹마스터의 전자우편 주소를 입력한다. 기본적으로 클라이언트에게 보내는 오류문에 이 주소를 기록한다.
기본값은 : "일단, 아무 메일이나 입력한다. ^^"
 
Install Apache HTTP Sever~ :  새로 설치하는 아파치가 80번 포트에서 요청을 기다리게 하려면 for All Users, on Port 80, as a Service - Recommended를 선택한다. 아파치를 service로 실행한다 (즉, 아파치는 서버에 로그인한 사람이 없어도 실행된다). 개인적으로 테스트해보거나 이미 80번 포트를 사용하는 다른 웹서버가 있다면 only for the Current User, on Port 8080, when started Manually 를 선택한다.

- Setup Type을 선택한다. 모듈 개발에 필요한 소스코드와 라이브러리를 제외한 모든 것을 설치하려면 Typical을 선택한다.  

   Custom을 선택하면 설치할 내용을 지정할 수 있다. 전체 설치시 디스크에 빈 공간이 약 13 메가바이트 정도 필요하다.

   [Next] 클릭.

- 설치경로를 선택한다. 설치경로를 변경하고자 한다면 [Change...]를 클릭후 원하는 경로를 로 변경한다. [Next] 클릭.

- [Install]을 클릭한다. 앞에서 설정한 상태로 설치가 진행된다.

-  Install이 완료되었다. [Finish]를 클릭한다.

- 실행 결과 확인

   apache 실행과 종료 시키기

   ①  Apache Service Monitor  실행시키기

        - 시스템 트레이에서 Apache Service Monitor 아이콘 Click하여 실행시킨다.

        - 시작 -> 프로그램 -> Apache HTTP Server 2.2 -> Apache Service Monitor 에서 실행

        - 관리도구 - > 서비스  -> Apache Service Monitor  실행 
         
        - Apache Service Monitor 실행


   ② 콘솔창에서 Apache 실행시키기

       /Apache 가 설치된 폴더/bin 이동한다. httpd -k start(restart, stop) 모두 가능

       혹시 80포트가 에러가 나오면서 apache가 실행되지 않는 경우

       - tomcat이 이미 80 포트를 사용하는 경우

          <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

      - Oracle DB 서버가 80포트를 사용하는 경우

         /오라클 설치 폴더/ora92/Apache/Apache/conf/httpd.conf에서포트를 변경해야 함.

         80포트 -> 8079포트(사용하지 않는 포트)로 변경한다.

      - IIS 웹서버가 설치된 경우

         서비스에서 일단 중지 시켜서 실행시켜 본다.

     - Apache를 실행시키데 에러가 없으면 Explorer 주소창에 입력하여 결과를 확인한다.


▶ tomcat 설치 : http://cafe.naver.com/tonkjsp/10 참조한다. (tomcat 컨테이너 포트를 종전에 80 -> 9999로 설정)

▶ tomcat 컨테이너와 Apache WebServer 연동 (윈도우즈 기준)

    - tomcat 컨테이너와 Apache WebServer 연동하기 위한 Module를 다운로드 합니다.
      다운로드 www.apache.org 에서 jk 모듈을 다운 받는다. (여기서는  mod_jk-1.2.26-httpd-2.2.4.so 사용)
     
      ①  Explorer  창에서 www.apache.org  입력하여 Apache 사이트로 들어간다.

      ② FTP 밑에 Backup Sites 항목에서 http://www.apache.org/dist 선택한다. 

      ③ tomcat 연동에 필요한 것을 다운 받아야 함으로 tomcat 선택합니다.

      ④ tomcat 연결에 필요한 것을 다운 받아야 함으로 tomcat-connectors/ 선택합니다.  

      ⑤  tomcat에 연동 필요한 jk/ 선택합니다. 

      ⑥  모듈도 파일임으로 파일 단위로 받기 위해 binaries/ 선택합니다. 

      ⑦ 운영체제(OS)에 맞는 버전을 선택합니다. 여기서는 윈도우에 설치함으로 win32/ 를 선택합니다. 
     
      ⑧ 여러가지 최신 버전도 있지만 안정적인 버전으로 받습니다. 여기서는 jk-1.2.26/ 선택합니다.

      ⑨ 여러가지 최신버전도 많지만 여기서는 안정적인 버전으로 mod_jk-1.2.26-httpd-2.2.4.so 를 받겠습니다. 
    
      ⑩  결국 파일의 경로는 http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/win32/ 이렇게 되겠지만 위의 경로만 적어서 다운 받아서 설치하게 되면 편리한데 혹시 url이 생각이 나지 않을  대비하여 언제든지 자유롭게 다운로드 받아 설치할 수 있도록 다운로드 받는 과정을 순서적으로 정리하였습니다.
   
▶  Apache WebServer에 tomcat 연동 모듈 설치

   ①  mod_jk-1.2.26-httpd-2.2.4.so 모듈 이름을 mod_jk.so 로 변경한다.  (꼭 바꿀 필요는 없지만 파일명이 너무 길어서 줄임)
  
②  Apache WebServer가 설치된 폴더 밑에 modules 디렉토리 밑에 mod_jk.so
        예) C:\server\Apache2.2\modules 밑에 mod_jk.so를 복사한다. 

▶ Apache WebServer와 tomcat Container 를 연동하기 위한 WebServer(tomcat) 환경설정 및 실행
      
         ① Apache WebServer 환경설정
             Apache WebServer 환경 설정 파일은 /Apache WebServer 설치 폴더/conf 디렉토리 밑에 httpd.conf 파일에서
             부터 시작한다. (httpd.conf 파일 편집)
            
             - tomcat 연동 모듈이 어디에 설치되어 있는지 Apache WebServer에게 인식시킬 필요가 있다.
 
               -> LoadModule jk_module modules/mod_jk.so (모듈을 로드 하겠다는 의미)   
               
                -> include conf/mod_jk.conf (환경 설정파일을 포함시킨다.)               

             - 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 : 웹에서 접근자에 대한 옵션을 지정하는 하는 것
             
           - 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
           
            -  결론, /Apache WebServer 설치 디렉토리/conf 디렉토리에 2개 파일 작성(mod_jk.conf ,workers.properties)
                1개 파일(
httpd.conf) 을 수정하면 된다.
        
        ② tomcat 설정 파일 확인(수정할 내용은 별로 없다.)
         
             -  /tomcat 설치 폴더/conf 디렉토리 밑에 server.xml를 확인한다.
              <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
              <Connector port="9999" protocol="HTTP/1.1"  connectionTimeout="20000" redirectPort="8443" />
                 <Engine name="Catalina" defaultHost="www.tonkjsp.com">
                       <Host name="www.tonkjsp.com"  appBase="webapps"unpackWARs="true" autoDeploy="true"
                            xmlValidation="false" xmlNamespaceAware="false">
                       </Host>
                  </Engine>

        ③ 결과 실행

         - tomcat 컨테이너와 Apache WebServer 실행시킨다. (에러가 없이 실행되어져야 합니다.)
       
         - 이것은 Apache WebServer -> tomcat 컨테이너 의해 index.jsp가 실행된 결과 입니다.
              
          - tomcat 컨테이너도 웹서버 기능이 포함되어 있기에 tomcat 컨테이너를 바로 실행시켜도 똑같이 나옵니다.

728x90

댓글