아파치 (Apache)
- Apache는 여러 프로젝트를 통해 오픈소스를 만들어내는 소프트웨어 단체 이름
- Apache 서버는 이 단체에서 만든 http 웹서버를 의미하며 http요청을 처리
- 정적인 데이터를 처리하는 웹 서버
- C10K Problem (하나의 웹서버에 10,000개의 클라이언트 접속을 커버할 수 있는 문제)를 해결하기 위해 가벼움과 높은 성능을 추구하며 만들어짐
- Thread/Process 기반 구조로, 요청당 Thread 하나가 처리 (Client 당 하나의 Thread가 할당되므로 사용자가 많아지면 시스템 자원 낭비가 심해짐)
톰캣 (Tomcat)
- WAS(Web Application Server)
- 동적 데이터를 처리하는 서버 (DB와 연결되어 데이터를 주고 받음)
- 웹 어플리케이션 서버는 JSP(Java Server Page)를 처리하는 프로그램
- Java로 만들어진 프로그램을 웹 서버에서 돌려서 결과값을 클라이언트로 돌려준다.
Client - 웹서버 - WAS - DB
- 아파치와 톰캣은 목적이 다르기 때문에 둘을 연동하면 효과적임
엔진엑스(Nginx)
- Apache와 같은 웹서버
- Apache의 단점을 보완하기 위해 만든 프로그램
- Apache와 달리 비동기 기반 구조