基于PHP的FastCGI模式
2020-04-16 10:11:22 2 举报
基于PHP的FastCGI模式:一个客户端进行一次或多次web服务器请求的流程,FastCGI的工作原理。
作者其他创作
大纲/内容
静态文件请求与响应
php-cgi
动态文件请求
FastCGI的工作原理:1.Web Server启动时载入FastCGI进程管理器(nginx的php-fpm或者Apache的 Module或IIS 的 ISAPI)2.FastCGI进程管理器读取php.ini配置文件,对自身进行初始化,启动多个CGI解释器进程(可建多个php-cgi),并等待来自Web Server的连接。3.当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi进行处理。4.FastCGI子进程完成处理后,将标准输出和错误信息按照CGI规定的格式从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便处理完成。FastCGI子进程接着等待,并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。
CGI/FastCGI格式返回数据php-cgi子进程继续等待
启动CGI解释器进程
初始化FastCGI管理器
基于PHP的FastCGI模式:一个客户端进行一次或多次web服务器请求的流程,FastCGI的工作原理
服务器启动
载入FastCGI
浏览器
web serverApache/Nginx
启动多个CGI解释器进程(php-cgi)
FastCGI与CGI特点:对于CGI来说,每一个Web请求PHP都必须重新解析php.ini、重新载入全部扩展,并重新初始化全部数据结构。而使用FastCGI,所有这些都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。由于FastCGI是多进程,所以比CGI多线程消耗更多的服务器内存,php-cgi解释器每进程消耗7至25兆内存,将这个数字乘以50或100就是很大的内存数。
FastCG进程管理器读取php.ini配置文件
CGI/FastCGI格式请求
收藏
收藏
0 条评论
回复 删除
下一页