제품소개
Apache 란?
아파치 HTTP 서버는 아파치 소프트웨어 재단에서 관리하는 오픈소스 HTTP 웹 서버입니다.
Apache Web Server는 인터넷 개방 표준 프로토콜과 인터넷 표준 개발언어를 지원하며 대부분의 하드웨어 플랫폼을 지원하는 웹 서버이며, 패치파일을 꾸준히 개선해 제공하고 있으며 파트 국제 시장 점유율 1위의 검증된 제품으로 초대형 포탈사이트, 국내외 공공기관등 다양한 구축 사례를 보유하고 있는 제품입니다.
제품개요
- 다양한 하드웨어 플랫폼 지원
- 웹 서버 파트 국제시장 점유율 1위
- 웹 서버 기술표준 준수 및 선도
- 개발에서 운영까지 일관된 제품 적용 가능 (오픈소스, 상용 S/W 모두 지원)
제품 구성 요소 및 주요 기능
기능 | 내용 |
---|---|
성능 |
|
제품 아키텍처
- 멀티 쓰레드, 멀티 프로세스
- Apache, Web Server는 멀티 프로세스, 멀티 쓰레드 아키텍처 지원, Apache web server의 정적 컨텐츠 처리 능력과 WAS 동적 컨텐츠 처리 능력이 결합되어 최상의 웹 서비스 구현
- 로드밸런싱 및 HA 구성
- Apache proxy module을 통한 apache + apache 간의 apache + WAS 간의 연동 기능은 하나의 서버가 다운되더라도 다른 서버에서 서비스가 유지되도록 하며 서비스 처리 능력의 향상이 필요할 시 간단하게 서버 추가로 다른 설정 변경 없이 성능 향상 가능
- Virthual Host(가상호스팅) 구성
- IP와 PORT가 부족한 상황에서도 여러 도메인을 한 서버로 운영하는 가상 도메인 기능을 지원하며 HTTP 헤더를 이용한 로그분리, 개별 서비스등 강력한 호스팅 기능 지원
Tomcat 이란?
Tomcat은 아파치 소프트웨어 재단에서 개발된 서블릿 컨테이너(또는 웹 컨테이너)만 있는 웹 어플리케이션 서버(WAS)입니다.
톰캣은 웹서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바 서버 페이지(JSP)와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있습니다. 톰캣은 관리툴을 통해 설정을 변경 할 수 있지만, XML 파일을 편집하여 설정할 수도 있습니다.
그리고 톰캣은 HTTP 서버도 자체 내장하기도 합니다.
톰캣 8 특징
- 서블릿 3.1
- 서블릿 3.0부터 HTTP 입출력에 큰 기능이 하나 추가됐는데 바로 “차단되지 않는 입출력(non-blocking IO)”입니다. 그전까지는 말하자면 웹브라우저 하나에서 웹페이지를 다운로드(또는 업로드)할 때 페이지 로딩이 끝날 때까지 다른 아무 것도 할 수가 없었습니다. 하지만 이제는 입출력을 비동기적으로 처리할 수 있어서 서버가 다른 작업을 하면서 입출력을 처리할 수 있습니다.
(다른 말로 또는 반대로 말하자면 입출력을 처리하면서 동시에 다른 작업을 할 수 있습니다. 이것이 가능한 것은 입출력을 별도의 자바 쓰레드를 생성해 처리하기 때문입니다.) - JSP 2.3
- -JSP 2.3은 “maintenance release”로서 톰캣 8에서 그 전 버전과 별 차이가 없습니다.
- EL (Expression Language) 3.0
- EL 3.0은 이전 버전과 많이 달라졌지만 하위 호환성이 있습니다. 이전 버전과 달리 ELProcessor라는 클래스를 단순 빈(bean)방식으로 선언하여 사용할 수 있으므로 JSP가 아닌 임의의 자바에서도 EL을 사용할 수 있게 됩니다. EL 3.0은 덧셈 연산자(+)로 문자열 연결하기, map/reduce등 다양한 기능이 추가 되었습니다.
- 웹소켓 1.01
- 톰캣 7에서도 웹소켓 API를 지원했으나 톰캣 8 및 7.0.43부터 새로운 API로 웹소켓이 구현됐습니다. 또한 톰캣 7에서는 차단되는(blocking) 방식이었으나 웹소켓 1.0에서는 거의 비차단식으로 제공됩니다.
- 기타 자바 EE 7 기능
톰캣 자체의 변화
- 이전에는 자원(파일)을 찾기 위한 방식으로 Aliases, VirtualLoader 파일등 여러가지를 설정할 수 있었는데 8버전부터 간단하게 일원화 되었습니다.
- 자바 7 이상이 필요합니다.
- 비차단식 입출력을 지원하기 위헤 NIO 커넥터가 기본 설정이 되었습니다. 이전처럼 BIO나 APR/네이티브 입출력도 계속적으로 지원 합니다.
- DB 연결 풀링에는 그전까지 DBCP를 사용했지만 이제 DBCP2가 기본이 되었습니다.