Enterprise Infrastructure Intelligence ● Certified engineers online · Fast response guaranteed
웹서버/DB

FastCGI와 PHP-FPM의 아키텍처 및 프로세스 관리 메커니즘

FastCGI는 웹 서버와 애플리케이션 간 고성능 통신 프로토콜이며, PHP-FPM은 이를 구현한 프로세스 매니저입니다. 풀 기반 프로세스 관리와 동적 워커 할당을 통해 높은 동시성과 리소스 효율성을 제공합니다.

2026.09.05  ·  28회  · 

FastCGI 프로토콜의 핵심 아키텍처

FastCGI는 웹 서버(Nginx, Apache 등)와 PHP 같은 애플리케이션 간의 이진 프로토콜로, 종래의 CGI가 요청마다 새로운 프로세스를 생성·종료하는 비효율성을 극복합니다. FastCGI 애플리케이션은 시작 후 웹 서버로부터의 연결을 기다리는 장기 실행 프로세스(Application Server)로 동작하며, Unix 도메인 소켓 또는 TCP/IP를 통해 통신합니다.

PHP-FPM의 프로세스 풀 관리

PHP-FPM(FastCGI Process Manager)은 여러 개의 워커 프로세스 풀을 관리하는 마스터-워커 아키텍처를 채택합니다. 마스터 프로세스는 풀 설정을 제어하고, 각 워커는 독립적인 PHP 스크립트를 실행합니다. 풀 단위로 서로 다른 사용자(uid/gid), 환경변수, php.ini를 설정할 수 있어 멀티테넌트 환경에 최적화되어 있습니다.

동적 프로세스 생성 및 메모리 관리

PHP-FPM은 pm=dynamic, static, ondemand 세 가지 모드를 제공합니다. Dynamic 모드에서는 pm.min_spare_servers와 pm.max_spare_servers 범위 내에서 유휴 프로세스 수를 자동 조절하며, pm.max_requests로 정해진 요청 수 후 워커를 재시작하여 메모리 누수를 방지합니다. 이러한 메커니즘은 높은 트래픽 환경에서 리소스를 효율적으로 활용합니다.

실무 주의점

웹 서버와 PHP-FPM이 동일 서버에 있을 때는 Unix 소켓(/run/php/php-fpm.sock)을 사용하는 것이 TCP보다 10~20% 지연이 낮습니다. PHP-FPM의 설정 변경 시 systemctl reload php-fpm을 사용하면 진행 중인 요청을 완료한 후 우아하게 워커를 재시작하여 연결 손실을 방지합니다.

참고 출처: PHP 공식 매뉴얼
WIKIDATA WORKSTATION
AI·렌더링에 최적화된
전문가용 워크스테이션
NVIDIA RTX GPU · 최대 192GB 메모리 · ECC 지원