Apache 구조: MPM

1640 단어 아파치

Apache의 구조


  • Apache는 고기능과 고성능을 동시에 실현하기 위해 모듈 구조를 채용하고 있다.
  • 모듈이란, 어느 기능을 실현하기 위한 소프트웨어.
  • 프로그램 본체에 짜넣거나 교환할 수 있는 작은 프로그램의 덩어리.

  • 2종류의 모듈(MPM과 일반적인 기능 모듈)
  • 핵심 기능 모듈 : MPM
  • 일반 기능 모듈




  • MPM: 멀티 프로세싱 모듈


  • 모듈의 기능을 서버의 기본 기능으로 확장 한 것이 멀티 프로세싱 모듈 (MPM)
  • 핵심 기능(MPM) 역할
  • 네트워크 포트를 청취하고, 요청을 수락하고, 수락한 요청을 자식 프로세스나 스레드에 할당하는 역할을 한다.

  • MPM은 위의 핵심 기능을 OS의 특성이나 서버 환경에 맞추어 교환 가능하다.

  • MPM의 종류


  • worker
  • 멀티프로세스, 멀티스레드에 대응.
  • 각 프로세스에 대해 결정된 수의 스레드를 준비합니다.
  • 스레드 동작은 리소스 당 처리 능력이 프로세스 동작보다 높아지고 일반적으로 성능을 향상시킵니다.

  • prefork(기본값)
  • 미리 httpd 자식 프로세스를 몇개 생성해 클라이언트로부터의 요구를 처리한다.
  • 멀티 스레드가 아닌 멀티 프로세스에서만 작동합니다.

  • perchild(Apache 2.2에서 폐지)
  • 멀티프로세스, 멀티스레드에 대응.
  • 각 프로세스에 개별 사용자 ID를 할당하여 가용성을 높일 수 있습니다.
  • 개발 도중이었지만 Apache 2.2에서 폐지

  • event (Apache 2.2부터)
  • 확장성이 뛰어난 MPM
  • Worker MPM과 같은 멀티 스레드 처리 가능
  • Keep-Alive 요청 처리에 연결을 처리하는 스레드와 다른 스레드를 할당 할 수 있습니다.
  • 상기의 이유로, 대규모의 용도에도 대응 가능.
  • Apache 2.2까지의 이벤트 MPM은 평가용으로 안정적으로 사용할 수 없었지만 Apache 2.4에서 개선되었습니다.


  • 기사를 쓴 이유: 메모


  • Apache, Nginx 등 다양한 웹 서버용 OSS가 있다.
  • Apache의 구조에 대해 간결하게 기록해 두고 싶었던 것이 이유입니다.

  • 참고


  • 책 : 서버 구축의 실제를 아는 Apache[실천] 운용/관리
  • 좋은 웹페이지 즐겨찾기