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

2021-06-20 12:05

阅读:359

标签:python   处理程序   文件   apache   ini文件   执行环境   翻译   中国   apache2   

  • 个人将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实现了这个协议

 

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

标签:python   处理程序   文件   apache   ini文件   执行环境   翻译   中国   apache2   

原文地址:http://www.cnblogs.com/lfchoo/p/7189600.html

上一篇:WebView的基本使用

下一篇:iis+php(FastCGI)


评论


亲,登录后才可以留言!