关于cgi,fastcgi,php-fpm的一些个人理解

  • 个人将cgi理解为翻译工具,举个例子,webserver如apache是中国人,收到的请求访问php文件是法国人,两者语言不通,无法沟通。这时cgi作为一个接口工具,为两者做翻译的服务。cgi程序会解析php的内容,以双方约定的形式返回web服务器。
  • cgi全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。当web server(nginx)收到/index.php这个请求后,会启动对应的CGI程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始化执行环境(消耗大量时间,对每个请求都要执行,fastcgi就是对这个过程的优化),然后处理请求,再以CGI规定的格式返回处理后的结果,退出进程。web server再把结果返回给浏览器。
  • Fastcgi是用来提高CGI程序性能的。WEB服务器与处理程序之间通信的一种协议,是CGI的改进方案。用来沟通程序(如PHP, Python, Java)和Web服务器(Apache2, Nginx), 理论上任何语言编写的程序都可以通过Fastcgi来提供Web服务。 Fastcgi的特点是会启动一个master,解析php.ini文件,初始化环境。在一个进程中依次完成多个请求,以达到提高效率的目的,大多数Fastcgi实现都会维护一个进程池。
  • PHP-fpm: 是一个实现了Fastcgi的程序,被PHP官方收录了(php5.3)。fastcgi是一个协议,php-fpm实现了这个协议
时间: 2024-10-17 21:19:32

关于cgi,fastcgi,php-fpm的一些个人理解的相关文章

什么是CGI FastCGI PHP-CGI PHP-FPM Spawn-CGI?它们之间的关系

1. CGI: Common Gateway Interface外部应用程序: CGI是外部应用程序(CGI程序)与Web服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的规程.CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器.能够让用户访问某种特定动态资源(例*.cgi)时,触发web服务器,让web服务器根据CGI协议调用额外的应用程序(或进程)来执行这段动态程序,将这段动态程序格式化成html的代码再返回给web服务器.它就是让WEB服务器跟应用程序服

CGI,FastCGI,php-cgi,php-fpm的关系

参考自http://segmentfault.com/q/1010000000256516 首先,CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的,方便CGI程序的编写者. web server(比如说nginx)只是内容的分发者.比如,如果请求/index.html,那么web server会去文件系统中找到这个文件,发送给浏览器,这里分发的是静态数据.好了,如果现在请求的是/index.php,根据配置文件,nginx知道这个不是静态文件,需要去找PHP解析器来

[转] Nginx + CGI/FastCGI + C/Cpp

接着上篇<Nginx安装与使用>,本篇介绍CGI/FASTCGI的原理.及如何使用C/C++编写简单的CGI/FastCGI,最后将CGI/FASTCGI部署到nginx.内容大纲如下: 1.     CGI 1.1.     环境变量 1.2.     标准输入 2.     FastCGI 3. nginx cgi/fastcgi 3.1. nginx + fastcgi 3.1.1. spawn-fcgi 3.1.2. 编写fastcgi应用程序 3.1.3. nginx fastcgi

PHP运行模式(cgi,fast-cgi,cli, ISAPI ,web模块模式)【转载】

PHP运行模式有5钟: 1)cgi 通用网关接口(Common Gateway Interface))2)fast-cgi 常驻 (long-live) 型的 CGI3)cli  命令行运行   (Command Line Interface) 4)ISAPI模式(Windows中使用的) 5)web模块模式 (apache等web服务器运行的模块模式) 1.  CGI(Common Gateway Interface) CGI即通用网关接口(Common Gateway Interface),

Nginx + CGI/FastCGI + C/Cpp

http://www.cnblogs.com/skynet/p/4173450.html Nginx + CGI/FastCGI + C/Cpp 2014-12-19 11:05 by 吴秦, 19794 阅读, 6 评论, 收藏, 编辑 接着上篇<Nginx安装与使用>,本篇介绍CGI/FASTCGI的原理.及如何使用C/C++编写简单的CGI/FastCGI,最后将CGI/FASTCGI部署到nginx.内容大纲如下: 1.     CGI 1.1.     环境变量 1.2.     标

cgi fastcgi php-cgi php-fpm

cgi  fastcgi  php-cgi  php-fpm 详解 参考: 摘至:http://www.cnblogs.com/thinksasa/p/4497567.html 详说fastcgi,php-fpm的区别:http://segmentfault.com/q/1010000000256516 注:只为个人收藏积累用 什么是CGI.FastCGI.PHP-CGI.PHP-FPM.Spawn-FCGI?:http://www.mike.org.cn/articles/what-is-cg

CGI FASTCGI php-fpm

CGI(Common Gateway Interface) CGI全称是"公共网关接口"(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行"交谈"的一种工具,其程序须运行在网络服务器上. CGI可以用任何一种语言编写,只要这种语言具有标准输入.输出和环境变量.如php,perl,tcl等. FastCGI FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fo

Web服务器和动态语言如何交互--CGI&amp;FastCGI&amp;FPM浅谈

一个用户的Request是如何经过Web服务器(Apache,Nginx,IIS,Light)与后端的动态语言(如PHP等)进行交互并将结果返回给用户的呢? 本文浅谈个人观点,可能有误,欢迎拍砖,共同学习. 一. 首先明确几个概念,以便后续说明 CGI:(Common Gateway Interface)Http服务器与后端程序(如PHP)进行交互的中间层. 工作原理及处理方式(fork-and-execute模式): 1.当Web Server有Request到达 2.fork一个CGI进程或

CGI FastCGI WSGI 解析

我们将服务端程序分为了web服务器和应用程序服务器. web服务器是用于处理HTML文件,让客户可以通过浏览器进行访问.主流的有apache,IIS,nginx,lghttpd等. 应用服务器处理业务逻辑,比如使用python的django,flask写成的程序 通常来自客户端浏览器的请求被web服务器截获,如果是静态请求,则如nginx会自己做处理,如果是动态请求,则会抛给后端应用服务器来处理.于是如何在web服务器与应用服务器之间进行通信成了主要问题,这就引出了以下三种处理的接口:CGI,F

CGI,FastCGI,PHP-CGI,PHP-FPM,Spawn-FCGI

CGI CGI, Common Gateway Interface, is a tool for HTTP server to contact with programs on other servers, which can be used into any languages with standard input, standard output and environmental variables, such as PHP, Perl, or Tcl. FastCGI FastCGI