linux - php-fpm.conf参数process_control_timeout是什么意思?
process_control_timeout = 0
设置子进程接受主进程复用信号的超时时间. 可用单位: s(秒), m(分), h(小时), 或者 d(天) 默认单位: s(秒). 默认值: 0
子进程接受主进程复用信号,复用信号是什么意思?
当一个url请求nginx处理交给php-fpm处理,这整个过程是一个什么原理?一个php-fpm进程里能包括多个请求?有没有高手给我讲讲.非常感谢.
回复内容:
通过百度,阅读原文,翻译中文
process_control_timeout = 0
设置子进程接受主进程复用信号的超时时间. 可用单位: s(秒), m(分), h(小时), 或者 d(天) 默认单位: s(秒). 默认值: 0
子进程接受主进程复用信号,复用信号是什么意思?
当一个url请求nginx处理交给php-fpm处理,这整个过程是一个什么原理?一个php-fpm进程里能包括多个请求?有没有高手给我讲讲.非常感谢.
先来简单谈谈PHP请求处理过程吧。
Nginx与PHP的交互依赖于CGI接口,因为两者都实现了CGI接口,所以Nginx可以把收到的请求交给PHP,并从PHP获得相应的结果回传给客户端。
最基本的CGI实现是每次请求都新建一个PHP进程,处理完成后关闭进程,这种方式会消耗很多的资源在进程的启动和关闭上,所以效率并不高。
进而出现了FastCGI这种实现方式,也就是启动一个进程后让它处理多个请求再关闭,这种方式就是解决每次请求都打开和关闭进程的消耗的。但FastCGI有个缺点,就是因为一个进程只能同时处理一个请求,如果同时收到多个请求,它们只能排队等待FastCGI进程的处理。
解决FastCGI只能同时处理一个请求的方式很简单,就是开启多个FastCGI进程。不过开启多个FastCGI进程的就存在对这些进程的管理问题,比如究竟要开多少个进程,怎么根据需要分配请求到这些进程上等等。而PHP-FPM就是这样一个管理FastCGI进程的管理程序。Nginx先将请求传递给PHP-FPM,再由PHP-FPM选择合适的FastCGI处理进程进行处理。
在PHP-FPM将请求传递给FastCGI处理进程的时候,就涉及到进程复用了。原则上,PHP-FPM会选择空闲的FastCGI进程去处理请求,在处理之前,PHP-FPM会发送进程复用信号给FastCGI进程,用来让FastCGI进程准备好接受请求并处理。但是,FastCGI进程并不总是能够处理请求,也就是不能够响应进程复用信号(比如说出现假死的情况),所以这个参数就表示了PHP-FPM留给FastCGI进程多久时间去响应进程复用信号,如果超时了,PHP-FPM会选择其他的方式(例如使用其他的FastCGI进程)去处理请求。
fpm 全称 fastcgi process manager 是专门管理fastcgi的
推荐阅读
-
javascript - jquery中sprite插件中fps参数和no_of_frames参数是什么意思?
-
linux文件访问权限(像rw-r--rw-是什么意思)
-
jquery中sprite插件中fps参数和no_of_frames参数是什么意思?
-
php中参数false是什么意思
-
php中参数false是什么意思
-
Python面试题之这两个参数是什么意思:*args,**kwargs?我们为什么要使用它们?
-
url是什么意思,百度参数URL格式优化(含:手机版)!
-
正则表达式中的"g"是什么意思附件参数g的用法
-
Python面试题之这两个参数是什么意思:*args,**kwargs?我们为什么要使用它们?
-
android开发 BaseAdapter中getView()里的3个参数是什么意思