[好文]mod_php和mod_fastcgi和php-fpm的介绍,对比,和性能数据

[好文]mod_php和mod_fastcgi和php-fpm的介绍,对比,和性能数据

ID:47427018

大小:310.51 KB

页数:16页

时间:2020-01-10

[好文]mod_php和mod_fastcgi和php-fpm的介绍,对比,和性能数据_第1页
[好文]mod_php和mod_fastcgi和php-fpm的介绍,对比,和性能数据_第2页
[好文]mod_php和mod_fastcgi和php-fpm的介绍,对比,和性能数据_第3页
[好文]mod_php和mod_fastcgi和php-fpm的介绍,对比,和性能数据_第4页
[好文]mod_php和mod_fastcgi和php-fpm的介绍,对比,和性能数据_第5页
资源描述:

《[好文]mod_php和mod_fastcgi和php-fpm的介绍,对比,和性能数据》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、mod_phpVSmod_fastcgi目录什么是MOD_PHP和MOD_FASTCGI1工作原理1mod_php2mod_fastcgi3MOD_FACTCGI的三种配置方式4静态配置5动态配置5远程方式6PHP-FPM6性能测试8名称解释8测试内容8测试结果8FASTCGI配置项对性能的影响。11分析&结论13附录14APACHE+MOD_FASTCGI+PHP搭建14什么是mod_php和mod_fastcgi在lamp体系中,对于apache端php的配置,我们最常用的就是mod_php,

2、它把PHP做为APACHE一个内置模块。让apachehttp服务器本身能够支持PHP语言,不需要每一个请求就启动PHP解释器来解释PHP。和把webserver与php绑定起来的方式不同,fastcgi是HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,相当于一个程序接口。它可以接受来自web服务器的请求,解释输入信息,将处理后的结果返回给服务器(apache,lighty等)。mod_fastcgi就是在apache下支持fastcgi协议的模块。工作原理在介绍这两种模式的工作原理

3、前,我们先了解一下php的架构图1php架构图上面是php的架构图,从图上可以看到,SAPI提供了一个和外部通信的接口,使得PHP可以和其他应用进行交互数据。php默认提供了很多种SAPI,常见的给apache的mod_php5,CGI,给IIS的ISAPI,还有Shell的CLI。对于一个基于apache的php应用,其运行流程可以简单归结如下apache->httpd->mod_phpfastcgi->sapi->php我们下面提到的两种工作方式就分别用到了mod_php5和cgi的sapi。

4、mod_phpmod_php是在lamp体系中最常使用的工作方式,在这种模式下,php被编译为apache的一个内置模块,在启动时加载。当有一个php请求过来时,直接在httpd进程里完成php的解释运行,将结果返回。在php的sapi中,有这样一个函数:sapi_cgibin_ub_write,这个函数告诉了Zend,如何输出数据。查看mod_php的sapi源码,我们会发现,这个函数直接调用了apache的ap_rwrite函数。所以,用mod_php,我们可以把php和apache看做一个模

5、块,两者绑定在一起。其工作原理如下图所示图2mod_php工作原理mod_fastcgi在说明fastcgi之前,先了解一下普通cgi的工作流程:webserver收到用户请求,并把请求提交给cgi程序,cgi程序根据请求提交的参数作应处理,然后输出标准的html语句返回给webserver,webserver再返回给客户端,这就是普通cgi的工作原理。fastcgi是基于cgi架构的扩展,他的核心思想就是在webserver和具体cgi程序之间建立一个智能的可持续的中间层,统管cgi程序的运行,

6、这样webserver只需要将请求提交给这个层,这个层再派生出几个可复用的cgi程序实例,然后再把请求分发给这些实例,这些实例是可控的,可持续,可复用的,因此一方面避免了进程反复fork,另一方面又可以通过中间层的控制和探测机制来监视这些实例的运行情况,根据不同的状况fork或者回收实例,达到灵活性和稳定性兼得的目的。modFastCGI的主要优点是把动态语言和webserver分离开来。这种技术允许把webserver和动态语言运行在不同的主机上,以大规模扩展和改进安全性而不损失生产效率。基于m

7、od_fastcgi方式的php应用,其典型工作流程如下图3mod_fastcgi工作原理从图上可以看出,apache启动后,mod_fastcgi会在启动多个cgi程序,也就是php-cgi脚本。具体脚本的数目通过配置来指定。当有http请求到来后,httpd进程会选择一个当前空闲的一个php-cgi程序来执行,执行的方式和mod_php类似,也是通过php-cgi提供的sapi完成交互。查看源码,可以发现对于cgi的sapi,和mod_php不同,它是把结果输出到fastcgi提供的stdou

8、t上,fastcgi再将数据返回给httpd完成交互。mod_factcgi的三种配置方式基于mod_fastcgi的fastcgi应用一共有三种配置方式:静态、动态和远程。他们通过apache配置中的伪指令来代替,对应于三种方式的伪指令分别是FastCgiServer,FastCgiConfig,以及FastCgiExternalServer。对于静态和动态这两种方式,apache将通过mod_fastcgi自带的进程管理工具(fcgi-pm)来管理fastcgi应用程序,也就是

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。