Apache 란?

<aside> 💡 Apache HTTP Server라고 불리며, 오픈소스 소프트웨어 그룹인 아파치 소프트웨어 재단에서 만든 웹 서버이다.

</aside>

참고) Tomcat이란? 아파치 소프트웨어 재단의 어플리케이션 서버로서, Apache Server로 부터 넘어온 동적인 페이지를 읽어들여 그 결과를 HTML로 재구성하여 Apache Server에게 되돌려주는 역할을 담당한다.

Apache 기능

  1. Apache는 클러스터링을 제공한다. Apache는 Tomcat에 다중 인스턴스 연결을 안정적으로 제공하는 가장 효율적인 서버다.

→ 인스턴스가 다운됐을 때에도 애플리케이션이 온라인 상태를 유지할 수 있다.

→ 배포 중에 다른 인스턴스를 온라인 상태로 제공해 사용자 요청을 처리함과 동시에 인스턴스를 코드에 배포할 수 있다. 무중단 배포가 가능하다.

*****클러스터링 : 각기 다른 서버를 하나로 묶어서 하나의 시스템 같이 동작하게 함으로써, 클라이언트들에게 고성능의 서비스를 제공하는 것을 말한다.

  1. Apache와 Tomcat은 AJP(Apache Jserv Protocol), Mod_jk를 통해 요청을 분산시킨다.

→ AJP는 어플리케이션 서버로의 로드 밸런스를 제공하고, mod_jk는 AJP 프로토콜을 톰캣과 연결하기 위해 만들어진 모듈로 사용된다.

  1. Apache는 클라이언트 접근에 추가 게이트 역할도 해준다, 즉 보안문제를 해결해 준다. 사용자와 호스트 기반 보안을 제공한다.

Apache 구성

Apache는 Multi Processing Module 아키텍처 기반으로 클라이언트 요청을 처리한다.

Untitled

mpm prework : 단일 스레드로 동작한다, 각 서버 프로세스는 한 번에 하나의 Request를 처리하며, Process 기반으로 동작한다. 대량의 메모리가 필요하고 상대적으로 느리지만 구조가 간단하여 구현이 간단하다.