...
아파치 (Apache) 와 톰캣 (Tomcat)
아파치 (Apache)
- 아파치 소프트웨어 재단에서 만든 웹서버(web server)를 일컫는다.
- 리눅스에서는 httpd 로 명명지어져 배포된다.
- 정적인 데이터들 (html, css 이미지, 파일 등)에 대한 클라이언트의 요청을 데이터로 만들어서 응답한다.
- 80 포트를 사용
Web Server 란?
http 프로토콜 기반으로 web client (browser) 로부터의 요청을 서비스하는 기능을 담당하는 프로그램.
80번 포트로 클라이언트 요청(POST,GET,DELETE)이 왔을때만 응답한다.
정적인 데이터에 대한 처리를 담당한다.
톰캣 (Tomcat)
- 웹 서버와 웹 컨테이너의 결합 (컨테이너, 웹 컨테이너, 서블릿 컨테이너라고 부름)
- 현재 가장 일반적이고 많이 사용되는 WAS(웹 애플리케이션 서버)
- 톰캣(WAS)는 JSP와 서블릿 처리, 서블릿의 수명 주기 관리, 요청 URL을 서블릿 코드로 매핑, HTTP 요청 수신 및 응답, 필터 체인 관리 등을 처리해준다.
- 8080 포트를 사용
WAS 란? (web Application Server)
여러 web client의 요구를 web서버가 감당할수없는 기능을 구조적으로 web서버와 분리하기 위해 만들어진것으로 web application server(WAS) 라고 한다.
WAS는 동적인 데이터를 처리하는 서버, DB 연결, 데이터 조작 등의 처리를 담당한다.
ex) tomcat, weblogic, jeus, jboss..
웹서버(Web Server)와 WAS 차이점
Web server와 WAS는 사용 목적이 다르다.
Web Server : html, 이미지 요청등 정적 데이터 요청을 처리하는데 빠르다.
WAS : servlet , jsp 등 비즈니스 로직을 수행하는데 적합하다.
그렇다고 WAS가 html,이미지 등의 요청을 처리하지 못한다는 말은 아니다.
다만 처리속도가 web서버에 비해 느리기 때문이다.
이렇게 서로 다른 강점을 합해서 사용하기 위해 web server 와 WAS를 연동하여 서비스를 하는것이 대부분이다.
아파치 톰캣 (Apache + Tomcat)
위에서 아파치와 톰캣에 대해서 알아봤다.
웹서버(아파치)는 정적인 데이터를 처리하는 서버. 이미지나 단순 HTML을 처리하는 서버라면 웹 서버가 적당하며 빠르고 안정적이다.
WAS(톰캣)은 동적인 데이터를 처리하는 서버. DB연결, 데이터 조작등과 같은 처리는 WAS를 활용해야 한다.
즉, 둘은 완전히 다른 개념으로 그들이 맡고있는 역할 역시 확연히 다흐다.
그렇다면 왜 톰캣을 아파치 톰캣이라고 부를까?
톰캣(WAS)에서 편의를 위해 아파치의 기능(웹서비스 데몬, Httpd)을 포함하고 있기 때문이다.
즉, 톰캣이 아파치의 기능 일부를 가져와서 제공해주는 형태이기 때문에 같이 합쳐서 부른다.
아파치 서버와 톰캣 서버의 분업
톰캣이 아파치의 기능을 지원하지만 아파치의 모든 기능을 제공하는 것은 아니다.
그래서 특수한 상황에선 아파치 톰캣만으로는 구현이 어려워, 따로 아파치 서버를 설치하고 톰캣과 연결하여 사용하는 케이스도 존재한다.
예를 들어 하나의 서버에서 PHP 애플리케이션과 자바 애플리케이션을 함께 사용하거나, Httpd(아파치) 서버를 간단한 로드밸런싱을 위해서 사용해야 하는 경우라면 Httpd를 앞에 두고 톰캣을 연결해서 사용하는 편이다.
아파치 톰캣 Installation
톰캣 설치
Core부분의
32-bit/64-bit Windows Service insaller 아니면
64bit- Windows zip을 받아서 설치하면 된다.
톰캣 파일구조
bin : 톰캣실행에 필요한 실행,종료시키는 스크립트 파일들이 위치
conf : server.xml 및 서버 전체 설정과 관련한 톰캣 설정파일들이 위치
lib : 아파치와 같은 다른 웹서버와 톰캣을 연결해주는 바이너리 모듈들이 포함되어있고, 톰캣구동하는데 필요한 (jar)라이브러리들이 위치
logs : 톰캣실행 로그파일들이 위치
temp : 톰캣이 실행되는 동안 임시파일이 위치
webapps : 웹어플리케이션이 위치
work : jsp파일을 서블릿형태로 변환한 java파일과 class파일을 저장하는 위치
bin폴더
startup.bat : 톰캣을 실행 (내부적으로 catalina.bat을 실행)
shutdown.bat : 톰캣을 정지 (내부적으로 catalina.bat을 실행)
conf 폴더
server.xml : 서버설정과 관련한 내용
web.xml : 서버가 올라갈때 가장 먼저 읽는 파일로 중요한 xml파일
webapps폴더
톰캣이 제공하는 웹애플리케이션의 기본 위치이다.
보통 이클립스를 통해서 자동생성하는데, 폴더구조를 맞춰서 웹프로젝트를 넣어야한다.
프로젝트 폴더가 다른 경로에 위치해있을경우 코드설정 밑에 !!
서버 쓸 디렉토리/파일 들을 이곳에 저장하게 될텐데
접속하실 때 사용하시는 http://localhost:8080/ <- 여기 다음 주소에 위 경로에 들어있는 폴더나 파일이 들어간다.
예를 들어)
webapps 폴더 안에 새폴더를 만들어서 'start' 라는 폴더를 만들고 그 폴더 안에 'index.html' 파일을 넣었다. 그럼 이 index.html 에 접속하기 위해서는 http://localhost:8080/start/index.html 로 접속하면 된다
Root 디렉토리는 최상위 폴더. 위 캡처에 나온 화면상에 자료가 없으면 자동으로 Root 디렉토리 안을 찾아준다.
그래서 webapps/ 또는 webapps/ROOT 경로에 서버에 사용할 파일들을 저장하면 된다.
톰캣 사용방법
installer버젼일때 메뉴얼 실행
zip 버젼일때, cmd로 실행
톰캣 경로로 간 다음 bin폴더에 있는 startup.bat를 실행한다.
실행하고나면 catalina_base, catalina_home, jre_home, class path 경로가 나온다.
그리고, 톰캣실행창이 뜬다.
만약, 창이 뜨자마자 꺼지거나 에러가 나면 자바의 환경변수 설정이 잘 못된 것이다.
그때는, 제어판 > 시스템 > 시스템속성창의 고급> 환경변수 로 들어가서 JAVA_HOME과 JRE_HOME을 생성하거나 수정해주면 된다.
다 정상적으로 실행이 된다면,
작동이 잘 되는지 웹페이지에서 http://localhost:8080/ 를 입력하여 테스트를 한다.
정상적으로 연결이 되었다면, 아파치톰캣 홈페이지가 나올것이다
아파치 톰캣 서버가 실행된 상태에서 로컬호스트 주소로 접속을 하게 되면 위와 같은 웹페이지를 볼 수 있는데, 이것은 아파치 톰캣 서버가 정상적으로 동작되고 있는 것을 의미. 참고로 위에 나온 화면은 C:\apache-tomcat-8.0.15\webapps\ROOT\index.jsp 파일의 내용.
톰캣 추가설정
톰캣 포트 변경
보통 이클립스에서 설정한 포트와 충돌나는것을 방지하기 위해서 필요에 따라, 기본 톰캣 포트변경을 할수도 있다.
기본적으로는 port="8005"인데 8105로 변경한다.
그 다음, 기본적으로 port="8080"으로 설정되어있다.
앞서 localhost:8080 했을때 톰캣 홈페이지가 나왔었는데 이때 연결되는 포트이다.
나는 80으로 지정했지만, 만약 다른 8082로 포트를 지정했다면 localhost:8082한다면 톰캣 홈페이지가 나올것이다.
또, redirectPort="8443"이었지만 9443으로 변경한다.
마지막으로, 기본적으로는 port="8009"로 되어있었는데 8109로 변경했고, redirectPort="8443"이었지만 9443으로 변경했다.
웹 홈페이지 경로 변경
웹 프로젝트를 톰캣의 webapps폴더가 아닌 다른 경로로 변경하는 방법이다.
<Host>태그 안에 빨간색으로 체크한 코드처럼 <context docBase=""/>부분에 자신의 프로젝트가 있는 경로를 추가해주면 된다.
톰캣 JDBC 연결
JDBC를 이용해 자바와 오라클 데이터베이스를 연결해줘야 할때, conf폴더의 context.xml파일을 열어 DB정보를 입력해주면된다.
그리고, lib폴더에 ojdbc 오라클 드라이버를 추가해주면 된다.
이 과정을 다 거친 후, 톰캣을 실행한 다음 localhost:지정한포트번호(ex : localhost:80 )를 웹페이지에 입력하면 자신이 원하는 페이지가 나올것이다.
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.