FPM(FastCGI 进程管理器)用于替换 PHP FastCGI 的大部分附加功能,对于高负载网站是非常有用的。
本文地址: http://www.lilaiqun.com/2018/03/19/20180319/
FPM的功能包括:
1.支持平滑停止/启动的高级进程管理功能;
2.可以工作于不同的 uid/gid/chroot 环境下,并监听不同的端口和使用不同的 php.ini 配置文件(可取代 safe_mode 的设置);
3.stdout 和 stderr 日志记录;
4.在发生意外情况的时候能够重新启动并缓存被破坏的 opcode;
5.文件上传优化支持;
6.”慢日志” - 记录脚本(不仅记录文件名,还记录 PHP backtrace 信息,可以使用 ptrace或者类似工具读取和分析远程进程的运行数据)运行所导致的异常缓慢;
7.fastcgi_finish_request() - 特殊功能:用于在请求完成和刷新数据后,继续在后台执行耗时的工作(录入视频转换、统计处理等);
FastCGI模式时,此方法可以提高请求的处理速度。
class Index
{
public function index()
{
echo 'end';
fastcgi_finish_request(); /* 响应完成, 关闭连接 */
file_put_contents('text.txt', 'after end');
}
}
此接口会在返回end字符串后,在项目根目录下生成text.txt文件并写入after end。fastcgi_finish_request之后的代码,虽然不占Web服务器时间,快速响应。后边的代码还是要占用fastcgi进程的时间。