对于apache端的php的配置,咱们最经常使用的就是mod_php,它把php做为apache一个内置的模块.让apache http服务器自己可以支持php语言,不须要每个请求就启动php解释器来解释php.php
工做原理:web
fastcgi:http服务器与你的或其它机器上的程序进行“交谈”的一种工具,至关于一个程序接口。它能够接受来自web服务器的请求,解释输入信息,将处理后的结果返回给服务器等。mod_fastcgi就是在apache下支持fastcgi协议的模块。apache
FastCGI像是一个常驻(long-live)型的CGI,它能够一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最 为人诟病的fork-and-execute 模式)。它还支持分布式的运算, 即 FastCGI 程序能够在网站服务器之外的主机上执行而且接受来自其它网站服务器来的请求。a主机的CGI能够接收B服务器上的请求。安全
(1)web server 启动时载入Fastcgi进程管理器。[PHP-FPM]
(2)Fastcgi进程管理器自身初始化,启动多个CGI解释器进程而且等待来自web server的链接。启动php-cgi Fastcgi进程时,能够配置TCP和unix套接字两种方式。通常生产环境中采用TCP方式
(3)当客户端请求到达web server时,web server 经过tcp协议或者unix套接字的方式将请求转发给Fastcgi主进程,Fastcgi主进程选择并链接一个cgi进程。
(4)Fastcgi子进程完成php程序流程处理后将标准输出和错误信息一同返回给web server。当Fastcgi子进程关闭时,请求便告处理完成。Fastcgi子进程便接着等待来自Fastcgi进程管理器的下一个链接。
(5)fastcgi是基于cgi架构的扩展,他的核心思想就是在web server和具体cgi程序之间创建一个智能的可持续的中间层,统管cgi程序的运行,这样web server只须要将请求提交给这个层,这个层再派生出几个可复用的cgi程序实例,而后再把请求分发给这些实例,这些实例是可控的,可持续,可复用的。mod_fastcgi的主要优势是把动态语言和web server分离开来。这种技术容许把web server 和 动态语言运行在不一样的主机上,以大规模扩展和改进安全性而不损失生产效率。服务器
使用fastcgi,最主要的优势是把应用和web server(apache)分离开来。这样容许把web server 和动态语言(php)运行在不一样的主机上,以大规模扩展和改进安全性而不损失效率。架构
这样状况下,对于php-cgi程序,因为从apache中分离出来,就须要一个单独的工具来对这些进程进行管理,幸运的就是php-fpm的出现。tcp
http://www.jb51.net/article/37756.htm分布式