Apache?
Apache
는 아파치 소프트웨어 재단에서 관리하는 HTTP(HyperText Transfer Protocol) 웹 서버
이다. BSD, 리눅스 등 유닉스 계열뿐만 아니라 윈도우나 노벨 넛웨어? 같은 기종에서도 운융할 수 있다고 한다.
- 리눅스 운영체제, 아파치 웹 서버, MYSQL DB, PHP 등으로
웹 서버
를 운영하는 것을 각각의 머릿글자를 따서LAMP
라고 부르기도 한다. Tomcat
, Resin등의웹 애플리케이션 서버
에서 사용할 수 있다.- Open-SSL, Mod-SSL을 설치하여 보안을 강화할 수 있다. (http -> https : s는 security)
Default Port : 80
웹 서버(Web Server)
쉽게 말하면 웹 서버
는 웹 서비스를 제공하는 컴퓨터이다. 이러한 웹 서버
에 접속하기 위해서 필요한 도구가 바로 인터넷 익스플로러(IE)
나 크롬(Chrome)
과 같은 웹 브라우져
이다.
우리가 www.nhnent.com
이라고 브라우저에 입력하면 웹 브라우저는 이 주소에 해당하는 웹 서버에 가서 서비스를 달라고 요청한다. 그리고 그 요청을 받은 웹 서버
는 클라이언트에게 서비스를 제공해주는 것이다.
그리고 그 앞에 붙는 http://
를 통해 어떠한 프로토콜(http, ftp)로 서비스를 주고받을지를 명시해주는 것이다.
Tomcat?
Tomcat
은 마찬가지로 아파치 소프트웨어 재단의 애플리케이션 서버
로 자바 서블릿(Servlet)을 실행시키고 JSP코드가 포함되어 있는 웹 페이지를 보여준다.
주로 Tomcat
은 웹 서버
즉 Apache
에서 넘어오는 동적인 페이지를 읽어들여 프로그램을 실행하고 그 결과를 다시 HTML
로 재구성하여 Apache
에게 되돌려 준다.
Tomcat
을 실행시키기 위해서는 JRE 1.1 이상에 부합되는 JAVA Runtime 환경이 필요하다.
Default Port : 8080
웹 애플리케이션 서버(WAS)
WAS(Web Application Server)
는 인터넷 상에서 HTTP
를 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해 주는 미들웨어(소프트웨어 엔진)
이다.
WAS
는 웹 서버
와 웹 컨테이너
의 결합으로 다양한 기능을 웹 컨테이너
에 구현하여 다양한 역할을 수행 할 수 있는 서버를 말한다.(웹 컨테이너
는 클라이언트의 요청이 있을 때 내부의 프로그램을 통해 결과를 만들어내고 이것을 다시 클라이언트에 전달해주는 역할을 하는 것을 말한다)
WAS
는 동적인 서버 컨텐츠를 수행하는 것으로 일반적인 웹 서버
와 구별되며, 주로 데이터베이스 서버와 같이 수행이 된다. 또한 WAS
는 웹 기반 분산 시스템 개발을 쉽게 도와주고 안정적인 트랜잭션 처리를 보장 해준다.
WAS의 종류
WAS 명 | 제조 회사 | 특징 |
---|---|---|
Tomcat | Apache | Servlet Container |
JEUS | Tmax | Servlet Container, EJB Container |
Weblogic | BEA -> Oracle | Servlet Container, EJB Container |
Sebsphere | IBM | Servlet Container, EJB Container |
Resin | CAUCHO | Servlet Container |
IIS | Microsoft | Java WAS가 아님 |
전체 구조
웹 서버
와 웹 애플리케이션 서버
를 따로 두고 사용하는 이유는 목적이 다르기 때문이다.
웹 서버
는 정적인 데이터(이미지, 단순 html파일)를 처리하는 서버이다. 정적 데이터는 웹 서버
를 통하면 더욱 빠르고 안정적으로 처리할 수 있다.
그에 비해, 웹 애플리케이션 서버
, 즉 WAS
는 동적인 데이터를 처리하는 서버이다. DB와 연결되어 데이터를 주고 받거나 프로그램으로 데이터 조작이 필요한 경우에는 WAS
를 활용해야 한다.
따라서 사용자의 요청을 HTTP 웹 서버
로 받고 내부적인 프로그램은 WAS
를 통해 처리하는 방식을 사용하면 동적인 데이터와 정적인 데이터를 효과적으로 처리할 수 있다.
반드시 Apache와 Tomcat을 같이 써야하는가?
정답은 No
! 아래 토비님이 작성한 글을 읽어보자.
1 |
|
참고로 Local 환경에서 개발을 하는 경우에는 Tomcat
만을 설치해서 진행하는 경우가 있는데 이는 Tomcat
의 기능 중 Apache의 웹 서비스 데몬 기능
이 포함되어 있기 때문이다.
성능 때문에 Apache
와 Tomcat
을 같이 사용하는 것이 아님! 기능상의 필요에 의해서 같이 사용하는 것이 주된 이유!