Nginx + FPM을 구성하는 방법에 대한 많은 기사가 인터넷에 있지만 운영 관점에서 수행 방법을 알려주는 것이지 왜 수행해야 하는지에 대해서는 설명하지 않습니다. Nginx와 FPM의 작동 메커니즘 구성 뒤에 숨은 원리에 대해 논의하고 Nginx와 PHP가 함께 작동하는 방식을 실제로 이해해 보겠습니다.
Nginx와 PHP가 어떻게 함께 작동하는지 이야기하려면 먼저 CGI(Common Gateway Interface)와 FastCGI라는 두 가지 프로토콜에 대해 이야기해야 합니다.
CGI는 웹 서버와 배경 언어 간의 상호 작용을 위한 프로토콜입니다. 이 프로토콜을 사용하면 개발자는 모든 언어를 사용하여 웹 서버의 요청을 처리하고 콘텐츠를 동적으로 생성할 수 있습니다. 그러나 CGI에는 치명적인 단점이 있습니다. 즉, 각 요청을 새로운 프로세스로 포크해야 한다는 것입니다. 웹의 등장으로 높은 동시성이 점점 더 표준이 되었고 이러한 비효율적인 방법은 분명히 수요를 충족할 수 없습니다. 이렇게 해서 FastCGI가 탄생했고, CGI는 곧 역사의 무대에서 물러났다. FastCGI는 이름에서 알 수 있듯이 더 빠른 CGI입니다. 하나의 요청이 처리된 후 바로 프로세스를 종료하는 대신 하나의 프로세스에서 여러 요청을 처리할 수 있습니다.
FPM(FastCGI Process Manager)은 FastCGI를 구현한 것이며 FastCGI 프로토콜을 구현하는 모든 웹 서버는 FPM과 통신할 수 있습니다. FPM은 또한 표준 FastCGI에 몇 가지 향상된 기능을 제공합니다. 자세한 내용은 공식 문서인 PHP: FPM Installation을 참조하세요.
FPM은 마스터 프로세스와 작업자 프로세스를 포함하는 PHP 프로세스 관리자입니다. 포트를 수신하고 웹 서버에서 요청을 받는 역할을 담당하는 마스터 프로세스는 단 하나뿐인 반면, 일반적으로 여러 작업자 프로세스(특정 번호)가 있습니다. 실제 필요 구성을 기반으로 함) 각 프로세스에는 PHP 코드가 실제로 실행되는 곳인 PHP 인터프리터가 내장되어 있습니다. 아래 그림은 내 로컬 컴퓨터에서 1개의 마스터 프로세스, 3개의 작업자 프로세스로 구성된 fpm의 프로세스 상황입니다.
Linux에서 PHP 환경을 설치하고 php-fpm 모듈을 지원하도록 Nginx를 구성하는 방법에 대한 자세한 소개(그림 및 텍스트)
PHP-FPM 실행의 실시간 보기 및 모니터링에 대한 자세한 설명 상태
php는 php-fpm을 사용하여 작업 명령을 다시 시작하고 중지합니다
위 내용은 Nginx와 FPM의 작동 메커니즘 예시 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!