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을 같이 사용하는 것이 아님! 기능상의 필요에 의해서 같이 사용하는 것이 주된 이유!