공개 SW 솔루션설치 & 활용가이드 미들웨어 > WAS 제대로배워보자 How to Use Open Source Software Open Source Software Installation & Application Guide
CONTENTS 1. 개요 2. 기능요약 3. 실행환경 4. 설치및실행 5. 기능소개 6. 활용예제 7. FAQ 8. 용어정리
- 3-1. 개요 소개 주요기능 Apache Tomcat은 Apache Software Foundation의어플리케이션서버 Java servlet을실행시키고 JSP코드가포함되어있는웹페이지생성 JSP/Servlet Container 중에하나로사용자에게 JSP요청을받으면서블릿으로바꾸어실행 JSP페이지를웹서버에요청을하면이페이지를해석하고실행하는역할 대분류 미들웨어소분류 WAS 라이선스형태 Apache License 2.0 사전설치솔루션 Java Development Kit 버전 9.0.1 (2017 년 10 월기준 ) 특징 보안취약점 개발회사 / 커뮤니티 Cross-platform, 플랫폼에제약없음 (Windows, Linux, Unix) Java로개발되는웹어플리케이션개발및운영시전세계적으로가장많이사용 취약점 ID : CVE-2017-7675 심각도 : 7.5 HIGH(V3) 취약점설명 : HTTP/2 구현이보안검사를우회하여공격자가특수하게조작된 URL을사용하여디렉터리통과공격을수행할수있음 대응방안 : 9.0.0.M22, 8.5.16 이상으로업그레이드 참고경로 : https://www.securityfocus.com/bid/100256 Apache Software Foundation 공식홈페이지 http://tomcat.apache.org
- 4-2. 기능요약 Tomcat 의주요기능 Jsp 파일 요청 변환 (Translation) JAVA 소스 (Servlet) 파일 Client 컴파일 (Compile) 클래스 (Servlet) 파일 응답 클래스 (Servlet) 파일메모리적재및실행
- 5-3. 실행환경 각버전별설치필요 Servlet Spec JSP Spec EL Spec WebSocket Spec JASPI C Spec Apache Tomcat V ersion Latest Released Version Supported Java Versions 4.0 2.3 3.0 1.1 1.1 9.0.x 9.0.1 (beta) 8 and later 3.1 2.3 3.0 1.1 1.1 8.5.x 8.5.23 7 and later 3.1 2.3 3.0 1.1 N/A 8.0.x (superseded) 8.0.47 (superseded) 7 and later 3.0 2.2 2.2 1.1 N/A 7.0.x 7.0.82 6 and later (7 and later for WebS ocket) 2.5 2.1 2.1 N/A N/A 6.0.x (archived) 6.0.53 (archived) 5 and later 2.4 2.0 N/A N/A N/A 5.5.x (archived) 5.5.36 (archived) 1.4 and later 2.3 1.2 N/A N/A N/A 4.1.x (archived) 4.1.40 (archived) 1.3 and later 2.2 1.1 N/A N/A N/A 3.3.x (archived) 3.3.2 (archived) 1.1 and later
- 6-4. 설치및실행 세부목차 4.1 리눅스 (CentOS) 설치 4.2 Windows(Windows 7) 설치
- 7-4. 설치및실행 4.1 리눅스 (CentOS) 설치 (1/4) CentOS 7.3 에설치하며간편한설치를위해 Binary 파일을이용하여설치 Apache Tomcat 홈페이지 (http://tomcat.apache.org) 에접속하여 Linux 용설치 tar.gz 파일 링크를복사한다. 설치에필요한버전확인후 Download -> 해당버전클릭 Core 부분 tar.gz 링크우클릭후 Copy Link Location
- 8-4. 설치및실행 4.1 리눅스 (CentOS) 설치 (2/4) wget 명령어를이용하여터미널창에서다운로드후 tar.gz 파일을압축을해제한다. 설치경로 /tomcat/apache-tomcat-8.5.23/ # wget http://apache.tt.co.kr/tomcat/tomcat- 8/v8.5.23/bin/apache-tomcat-8.5.23.tar.gz # tar xvf apache-tomcat-8.5.23.tar.gz
- 9-4. 설치및실행 4.1 리눅스 (CentOS) 설치 (3/4) 설치경로 (/tomcat/apache-tomcat-8.5.23/) 아래 bin 디렉터리에서 startup.sh 를실행한다. 로그확인은 catalina.out 파일로확인가능하다. # cd /tomcat/apache-tomcat-8.5.23 # ls -l # cd bin/ #./startup.sh # cd../logs # tail -f catalina.out
- 10-4. 설치및실행 4.1 리눅스 (CentOS) 설치 (4/4) 파이어폭스주소창에 http://localhost:8080 입력후정상구동을확인한다.
- 11-4. 설치및실행 4.2 Windows(Windows 7) 설치 (1/8) Oracle 홈페이지 (https://www.oracle.com) 에접속한다. 설치하고자하는 Tomcat 버전과호환되는 JDK 버전을다운로드한다.
- 12-4. 설치및실행 4.2 Windows(Windows 7) 설치 (2/8) 다운받은설치파일을실행한다. 설치과정은다음과같다.
- 13-4. 설치및실행 4.2 Windows(Windows 7) 설치 (3/8) 다운받은설치파일을실행한다.( 계속 )
- 14-4. 설치및실행 4.2 Windows(Windows 7) 설치 (4/8) Apache Tomcat 홈페이지 (http://tomcat.apache.org) 에접속하여좌측 Download 설치버전확인후 Window 용설치파일 (32-bit/64-bit Windows Service Installer) 을 다운로드한다.
- 15-4. 설치및실행 4.2 Windows(Windows 7) 설치 (5/8) 다운받은설치파일 apache-tomcat-8.5.23 을실행한다.
- 16-4. 설치및실행 4.2 Windows(Windows 7) 설치 (6/8) 다운받은설치파일 apache-tomcat-8.5.23 을실행한다. 설치과정은다음과같다. [ 포트설정및 Adiministrator 비밀번호설정 ] [JAVA 설치경로 ] [ 설치폴더경로 ]
- 17-4. 설치및실행 4.2 Windows(Windows 7) 설치 (7/8) 다운받은설치파일 apache-tomcat-8.5.23 을실행한다.( 계속 ) [ 설치완료 Tomcat 실행 ] [ 실행창에 services.msc 로확인가능 ]
- 18-4. 설치및실행 4.2 Windows(Windows 7) 설치 (8/8) 익스플로러주소창에 http://localhost:8080 입력후정상구동을확인한다. [ Tomcat 기본 Page ]
- 19-5. 기능소개 세부목차 5.1 Manager를통한어플리케이션배치 5.2 Webapps DIR 5.3 Context.xml 5.4 Paralel Deployment 5.5 가상호스트
- 20-5. 기능소개 5.1 Manager 를통한어플리케이션배치 (1/6) Manager 는내부에서수행되는어플리케이션을관리담당 Manager 를통해배치할 sample 어플리케이션을아래와같이생성 [ 어플리케이션 sample ]
- 21-5. 기능소개 5.1 Manager 를통한어플리케이션배치 (2/6) Manager 계정등록 톰캣설치경로의 conf 디렉터리의 Tomcat-users.xml 파일 Tomcat-users.xml 파일마지막줄수정 username 과 password 를입력
- 22-5. 기능소개 5.1 Manager 를통한어플리케이션배치 (3/6) 웹브라우저에서 Manager App 클릭후설정한계정으로로그인한다. [ Manager App 접속 ]
- 23-5. 기능소개 5.1 Manager 를통한어플리케이션배치 (4/6) [ Manager App 기본페이지 ]
- 24-5. 기능소개 5.1 Manager 를통한어플리케이션배치 (5/6) Directory deploy /sample 위와같이입력후 Deploy 버튼클릭 Sample 어플리케이션추가부분
- 25-5. 기능소개 5.1 Manager 를통한어플리케이션배치 (6/6) sample 어플리케이션페이지
- 26-5. 기능소개 5.2 Webapps DIR (1/2) Webapps 디렉터리는 conf/server.xml 확인하시면초기 name= localhost, appbase= webapps 로설정되어있다. 따라서 URL에 localhost로입력하시면기본페이지가설정되어있는것을확인할수있다. Webapps에최초로만들어놓은 Sample 어플리케이션으로등록한다. sample 로만들어놓은어플리케이션을복사합니다. 복사하는순간 sample 어플리케이션이 Deploy 된다. Catalina.out 로그를확인하시면복사할때위와같이 deploy 되는로그를확인할수있다.
- 27-5. 기능소개 5.2 Webapps DIR (2/2) Manager 페이지에서 Webapps 로등록한어플리케이션배치확인하기 Sample 어플리케이션추가부분 Sample 어플리케이션추가부분
- 28-5. 기능소개 5.3 Context.xml (1/2) Tomcat 5.5.12+ 이후부터는 context.xml 파일을분리하여 webapplication에서별도로자원을등록사용할수있도록제공한다. /tomcat/apache-tomcat-8.5.23/conf/catalina/localhost/ 위경로에 sample.xml 파일을생성한다. Catalina.out 로그를확인하시면복사할때위와같이 deploy 되는로그를확인할수있다.
- 29-5. 기능소개 5.3 Context.xml (2/2) Manager 페이지 Context.xml 배치확인하기 Sample 어플리케이션추가부분 Sample 어플리케이션페이지
- 30-5. 기능소개 5.4 Parallel Deployment(1/3) 하나의 tomcat instance 에동일한 context path 를가진 application 을다중으로 올릴수있게됨으로써테스트에영향을주지않고, 최신버전의소스를배포할수있다. 기존 sample 어플리케이션복사한다. cp R 명령어를통해기존 Sample 파일뒤에 ##01 과 ##02 를붙여복사한다. sample##01, sample##02 의디렉터리에각각 index.jsp 파일수정한다.
- 31-5. 기능소개 5.4 Parallel Deployment(2/3) /tomcat/apache-tomcat-8.5.23/conf/catalina/localhost 경로에아래와같은내용으로각각 xml 파일 2 개를생성한다.
- 32-5. 기능소개 5.4 Parallel Deployment(3/3) Parallel Deployment 를이용한어플리케이션배치하기 Sample 어플리케이션추가부분 기존 sample##1 으로연결되던세션이만료되면신규버전인 sample##2 어플리케이션으로세션이넘어간다. 기존세션 Sample 어플리케이션페이지 신규세션 Sample 어플리케이션페이지
- 33-5. 기능소개 5.5 가상호스트 (1/4) 2 개의도메인이하나에톰캣에설정할때각각주소에따라지정된어플리케이션을호출 할수있는기능이다. 기존 sample 어플리케이션을 /app/homepage, /app/mailserver 로각각복사합니다. /app/homepage, /app/mailserver 디렉터리의 index.jsp 파일을위와같이수정한다. /etc/hosts 파일내용추가
- 34-5. 기능소개 5.5 가상호스트 (2/4) /tomcat/apache-tomcat-8.5.23/conf/server.xml 파일에내용을추가한다.
- 35-5. 기능소개 5.5 가상호스트 (3/4) /tomcat/apache-tomcat-8.5.23/conf/server.xml 수정시자동으로 mailapps, serverapps 가생성된다. /app/homepage, /app/mailserver 어플리케이션을 ROOT 로복사한다.
- 36-5. 기능소개 5.5 가상호스트 (4/4) 파이어폭스주소창에등록한호스트별확인하기
- 37-6. 활용예제 세부목차 6.1 웹서버연동하기
- 38-6. 활용예제 6.1 웹서버연동하기 (1/5) Tomcat 서버는본연의임무인서블릿컨테이너의역할만하고, Apache HTTP Server 는 웹서버의역할을하도록각각의기능을분리하여연동한다. [ Tomcat 홈페이지의 Tomcat Connectors ] [ JK 1.2.42 Source Release tar.gz 다운로드 ] Tomcat 과 Apache 를연동하기위해 mod_jk 모듈을다운로드한다.
- 39-6. 활용예제 6.1 웹서버연동하기 (2/5) 다운로드받은 tomcat-connectors-1.2.37-src.tar.gz 압축해제후컴파일한다. 파일압축풀기 파일확인 컴파일을하기위한경로이동 #./configure --with-apxs=/usr/local/apache2/bin/apxs # make # make install 순서대로진행한다.
- 40-6. 활용예제 6.1 웹서버연동하기 (3/5) mod_jk.conf 파일과 workers.properties 을생성한다. [ /usr/local/apache2/conf 디렉터리에생성한다.] [/usr/local/apache2/conf 디렉터리에생성한다.]
- 41-6. 활용예제 6.1 웹서버연동하기 (4/5) /usr/local/apache2/conf/httpd.conf 파일수정한다. [ httpd.conf 파일 mod_jk 모듈을등록한다. ] [ mod_jk.conf 파일 include 한다. ] LoadModule jk_module modules/mod_jk.so 추가내용 include conf/mod_jk.conf 추가내용
- 42-6. 활용예제 6.1 웹서버연동하기 (5/5) 80 포트로접속시아파치페이지가호출되는게아니라톰캣과연동되어톰캣페이지가 호출된다. [ 톰캣기본페이지화면 ]
- 43-7. FAQ Q Tomcat 기본 Port 8080을변경할수있나요? & A 기본포트변경가능합니다. Server.xml파일을보시면 Connector port부분에 8080포트로명시되어있으나, 해당부분변경후서비스재시작해주시면변경된포트로서비스됩니다. Q Apache와 Tomcat의차이점은뭔가요? & A Apache는정적인파일을처리합니다. 예로이미지파일또는 html 같은파일을처리하며, Tomcat은동적인파일을처리합니다. 예로 jsp 파일을처리합니다.
- 44-7. FAQ Q Tomcat을 80포트로구동시키면편리하지않나요? & A Linux에서 1024 이하의포트번호는 root 사용자에게만사용이허가됩니다. 예제처럼 Tomcat 사용자가구동시키는 Tomcat은 80포트에서권한을가질수없습니다. 이것은 Linux의또다른보안체계라고할까요? 이때문에특정몇몇프로그램을제외하고는포트번호를 1024 이상의큰번호로사용합니다 Q Apache와 Tomcat을연동하는꼭해야하는건가요? & A 어떠한요청이들어왔을때여러개의서버로분산해서처리할수있는장점이있습니다. 또한 Apache가처리하는어플리케이션과 Tomcat이처리하는어플리케이션을별도로분리하는소스분산이가능합니다.
- 45-8. 용어정리 용어 설명 Catalina 서블릿컨테이너 ( 자바서블릿을호스팅하는환경 ) Coyote HTTP 컴포넌트 ( 톰캣에 TCP 를통한프로토콜지원 ) Jasper 톰캣의 JSP 엔 ( 실제 JSP 페이지의요청을처리하는서블릿 ) TomEE WAS Servlet JSP 톰캣의부족한 JAVA EE 컴포넌트수용함으로써완벽한 WAS 로서수행가능 WAS (web application server) 웹애플리케이션서버 Servlet 은웹에서 JAVA 프로그래밍을구현하기위한정의 JSP(Java Server Page) 는서블릿이라고하는자바웹프로그래밍기법에기반을두고있으며, PHP 나 ASS 와같이 HTML 과함께스크립트를사용할수있음
Open Source Software Installation & Application Guide 이저작물은크리에이티브커먼즈저작자표시 2. 0 대한민국라이선스에따라이용하실수있습니다.