Nginx, CGI, FastCGI, PHP-CGI, PHP-FPM 처리 흐름

WBOY
풀어 주다: 2016-07-29 08:58:04
원래의
982명이 탐색했습니다.

cgi fastcgi php-fpm php-cgi에 대한 설명은 Baidu에서 볼 수 있습니다. 다음은 제가 이해한 것입니다.

용어:

<code>1、web服务器
2、通信协议
3、进程、主进程、子进程
4、php解析器

CGI:Common Gateway Interface 公共网关接口,web服务器和脚本语言通信的一个标准、
接口、协议【协议】

FastCGI:CGI协议的升级版【协议】

PHP-CGI: 实现了CGI接口协议的PHP脚本解析器【程序】

PHP-FPM: 管理和调度php-cgi进程,进而实现了FastCGI接口协议的程序【程序】
</code>
로그인 후 복사
<code>webserver只能处理静态文件,对于php这样的动态脚本无能为力,只能交给php自己来处理,
于是有了下面这个流程:

</code>
로그인 후 복사

Nginx, CGI, FastCGI, PHP-CGI, PHP-FPM 처리 흐름

<code>但是上面架构有个性能问题,CGI对每个请求会parse一遍对应脚本的配置文件(如php.ini),
加载配置和扩展,初始化执行环境,性能非常差,所有有了下面的流程:
</code>
로그인 후 복사

Nginx, CGI, FastCGI, PHP-CGI, PHP-FPM 처리 흐름

그렇다면 PHP-FPM과 같은 Fastcgi 프로토콜을 구현하는 프로그램은 어떻게 수행합니까? 먼저 Fastcgi는 마스터 프로세스를 시작하고 구성 파일을 구문 분석하고 실행 환경을 초기화한 다음 여러 작업자 프로세스를 시작합니다. 요청이 들어오면 마스터는 이를 워커에게 전달하고 즉시 다음 요청을 수락할 수 있습니다. 이는 작업의 중복을 방지하고 자연스럽게 매우 효율적입니다. 그리고 작업자가 충분하지 않은 경우 마스터는 구성에 따라 여러 작업자를 미리 시작하여 대기할 수 있습니다(예: 20명의 작업자). 물론 유휴 작업자가 너무 많으면 일부가 중지되어 성능이 향상되고 리소스가 절약됩니다. . fastcgi의 프로세스 관리입니다.

php-fpm 구성 파일의 작업자 수에 대한 구성 항목은 다음과 같습니다.

<code>; The maximum number of processes FPM will fork. This has been design to control
; the global number of processes when using dynamic PM within a lot of pools.
; Use it with caution.
; Note: A value of 0 indicates no limit
; Default Value: 0
; process.max = 128</code>
로그인 후 복사

그러면 최대 작업자 프로세스 수는 128개입니다

FastCGI 더보기

<code>    fastcgi是基于cgi架构的扩展,他的核心思想就是在web server和具体cgi程序之间建立一个智能的可持续的中间层,统管cgi程序的运行,这样web server只需要将请求提交给这个层,这个层再派生出几个可复用的cgi程序实例,然后再把请求分发给这些实例,这些实例是可控的,可持续,可复用的,因此一方面避免了进程反复fork,另一方面又可以通过中间层的控制和探测机制来监视这些实例的运行情况,根据不同的状况fork或者回收实例,达到灵活性和稳定性兼得的目的。</code>
로그인 후 복사

참고문서

https://segmentfault.com/q/1010000000256516

http: //blog.csdn.net/zhuanshenweiliu/article/details/46413241

위 내용은 관련 내용을 포함하여 Nginx, CGI, FastCGI, PHP-CGI, PHP-FPM의 처리 흐름을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿