이런 내용을 자주 보는데, 온라인에서 확인한 정보가 이해가 안 되네요. 일반인의 용어로 설명해 주실 수 있나요?
개념 이해: CGI, FastCGI, PHP-CGI 및 PHP-FPM
밤을 주시는 게 좋을 것 같아요!
감사합니다
이런 내용을 자주 보는데, 온라인에서 확인한 정보가 이해가 안 되네요. 일반인의 용어로 설명해 주실 수 있나요?
개념 이해: CGI, FastCGI, PHP-CGI 및 PHP-FPM
밤을 주시는 게 좋을 것 같아요!
감사합니다
CGI는 HTTP 서버와 동적 핸들러 간의 통신 방법을 설정하는 데 사용되는 인터페이스 규칙 집합입니다.
FastCGI는 CGI 구현으로 간주할 수 있습니다. CGI 처리기를 프로세스에 상주시켜 하나의 CGI 프로세스가 여러 요청을 처리할 수 있도록 하여 CGI 프로그램을 반복적으로 시작하는 데 드는 시간과 리소스 소비를 줄입니다.
php-cgi는 PHP 프로그램 처리를 제공하는 데 사용되는 FastCGI입니다.
php-fpm(FastCGI 프로세스 관리자)은 FastCGI 프로그램 위에 FastCGI 프로세스를 관리하기 위한 관리 도구입니다.
php-cgi는 요청을 처리하기 위해 php-cgi를 열면 한 번에 하나의 요청만 처리할 수 있으며 나머지 요청은 대기열에 들어갑니다.
php-fpm은 동시에 처리하기 위해 요청을 여러 FastCGI 프로세스에 병렬로 보낼 수 있도록 여러 FastCGI 프로세스를 관리합니다.
php-fpm이 여러 개의 php-cgi를 관리한다고 간단히 이해하면 됩니다
간단한 예로 클라이언트에서 Nginx 서버로 요청이 전송된 후 PHP 프로그램에 의해 처리됩니다.
요청은 Nginx 서버로 보내지고, Nginx 서버는 구성에 따라 php-fpm으로 보냅니다. 단, Nginx와 php-fpm은 두 회사의 제품임을 확인하면 됩니다. 서로가 보내는 정보, 내용은? 디자인할 때 모두 CGI의 규칙을 따랐기 때문이다.
php-fpm이 요청을 받은 후 요청 처리를 위해 관리하는 FastCGI 프로세스에서 유휴 프로세스를 찾습니다.
또한 Nginx는 php-cgi에도 연결이 가능하지만 php-cgi에는 프로세스 관리 모듈이 없고 단일 프로세스입니다.
Yin Chuan의 답변, FastCgi와 PHP-fpm의 관계 참조