System Settings

[WEB/WAS 개념 정리 시리즈] 3편 - Apache MPM 방식과 Web 처리 구조

midworker 2025. 5. 14. 22:22
반응형

[WEB/WAS 개념 정리 시리즈] 3편 - Apache MPM 방식과 Web 처리 구조

이번 글에서는 Apache 웹서버의 핵심 구성 방식인 MPM(Multi-Processing Module)에 대해 다룹니다.
Apache가 클라이언트 요청을 처리하는 구조와 Prefork, Worker, Event 방식의 차이를 실무 기준으로 정리합니다.


✅ MPM이란?

  • Apache에서 클라이언트 요청을 처리하는 핵심 모듈
  • 요청을 처리할 프로세스와 스레드 구조를 결정
  • 성능, 메모리 사용량, 동시 접속 처리 능력에 큰 영향

✅ 주요 MPM 방식 비교

항목 Prefork Worker Event
구조 프로세스 기반 프로세스 + 스레드 Worker 기반 + keep-alive 개선
동시성 낮음 높음 매우 높음
안정성 매우 안정적 일반적 신기술 기반
특징 각 요청마다 프로세스 생성 스레드로 처리, 메모리 효율 ↑ keep-alive 연결을 별도 처리
CGI 호환 좋음 낮음 낮음

✅ MPM 동작 흐름 (Worker 기준)

클라이언트 요청
→ Apache 프로세스
→ 스레드 생성
→ 요청 처리
→ 응답 반환

✅ MPM 설정 위치

Apache 설정 파일:

/etc/httpd/conf.modules.d/00-mpm.conf

예시 설정:

<IfModule mpm_worker_module>
    StartServers             2
    MinSpareThreads         25
    MaxSpareThreads         75
    ThreadsPerChild         25
    MaxRequestWorkers      150
    MaxConnectionsPerChild 1000
</IfModule>

✅ 주요 설정 항목

항목 설명
StartServers 초기 프로세스 개수
ThreadsPerChild 프로세스당 스레드 수
MaxRequestWorkers 최대 동시 요청 수
MaxConnectionsPerChild 프로세스 재시작 기준

✅ MPM 선택 기준 (실무 팁)

환경 추천 MPM
단순 정적 서버 Worker 또는 Event
레거시 CGI 사용 Prefork
높은 동시성 필요 Event
메모리 제한 있음 Worker

✅ 확인 및 적용

현재 MPM 확인

httpd -V | grep MPM

변경 방법

  1. 00-mpm.conf에서 원하는 MPM 모듈만 LoadModule 활성화
  2. 나머지 MPM 모듈은 주석 처리
  3. Apache 재기동
systemctl restart httpd

✅ 마무리

Apache의 MPM 방식은 성능과 안정성에 직접적인 영향을 주는 핵심 설정입니다.
다음 편에서는 Web과 WAS 간 연동 구간의 로드밸런싱, 세션 클러스터링을 설명합니다.


반응형