【发布时间】:2013-02-22 08:17:09
【问题描述】:
我的 PHP 应用程序在 Nginx 和 PHP-FPM 上运行。
当我使用 Apache 时,请求中止(浏览器关闭)终止了 php 进程,但现在脚本继续执行直到结束。 Nginx fastcgi_ignore_client_abort 选项是Off 而我不使用fastcgi_finish_request 函数。
这种行为的原因是什么?或者我怎样才能告诉 php 请求被中止了?
【问题讨论】:
我的 PHP 应用程序在 Nginx 和 PHP-FPM 上运行。
当我使用 Apache 时,请求中止(浏览器关闭)终止了 php 进程,但现在脚本继续执行直到结束。 Nginx fastcgi_ignore_client_abort 选项是Off 而我不使用fastcgi_finish_request 函数。
这种行为的原因是什么?或者我怎样才能告诉 php 请求被中止了?
【问题讨论】:
fastcgi 让进程保持打开状态,并在特定文件的进程中关闭句柄。这是 fastcgi 和常规 cgi 之间的主要区别之一。另外,php根本不知道浏览器。
【讨论】:
这就是fast-cgi 通常比mod_php 提供更高性能的原因。与分叉相反的线程方法意味着没有为每个请求启动 apache 进程(或关闭它)的开销。
您可以配置运行的子节点数量来调整process manager documentation 消耗的资源量。
【讨论】: