Cgi与php-Cgi以及Fast-Cgi与php-fpm的理解

三种php解释器执行方式:

1. mod_php:Apache中模块形式;单个进程可以处理多个请求

2. Cgi:Common Gateway Interface,协议

php-Cgi:1)Cgi协议的实现,用来解释php请求;过程:php请求->php-Cgi读取并解析

php.ini 文件,初始化环境->根据请求参数,返回处理结果

2)单个进程只能处理一个请求,每一个进程,都需读取php.ini进行解析,效率较低

3)修改完php.ini文件,启动php-Cgi程序不会生效,无法平滑重启

 

3. Fast-Cgi:在Cgi协议上做了优化,提高性能

php-fpm:1)Fast-Cgi协议的实现,用来解析php请求,过程:php请求->php-fpm读取

php.ini初始化环境->启动一个master->启动多个worker->master将请求传

递给work->php-fpm动态配置worker数量

2)单个进程通过启动多个php-Cgi程序处理多个请求

3)修改完php.ini文件,启动新的worker,调用新的配置,实现平滑重启

时间: 2024-12-28 04:54:06

Cgi与php-Cgi以及Fast-Cgi与php-fpm的理解的相关文章

Fast CGI 工作原理

http://www.cppblog.com/woaidongmao/archive/2011/06/21/149092.html 一.FastCGI是什么? FastCGI是语言无关的.可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能.众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能.伸缩性.Fail-Over特性等等.    FastCGI的官方站点在ht

在基于Jetty Fast CGI Proxy和php-fpm下配置Discuz

终于把Discuz装上了,但是安装完以后发现问题一大堆..这个图片不显示,那个不能用的. 问题的根源在于因为我不是直接的php访问,而是通过php-fpm中转了一下,而discuz的代码里面很多直接引用了$_SERVER[HTTP_HOST]这样的变量,使得很多地方都是localhost:9000 (即代理的地址) 要解决这个问题要花好几步 1. upload/source/class/discuz_application下面,搜索siteurl,在初始化siteurl的地方,填写你的域名 2.

CGI概念

CGI(通用网关接口,Common Gateway Interface) CGI是Web服务器与请求处理程序之间传输数据的一种标准,保证Web服务器传递过来的数据是标准格式的,其程序须运行在网络服务器上.CGI可以用任何一种语言编写,只要这种语言具有标准输入.输出和环境变量.工作原理:每当客户请求CGI的时候,WEB服务器就请求操作系统生成一个新的CGI解释器进程(如:PHP-CGI),当CGI满足要求后,WEB服务器就杀死这个进程.Web服务器(如:Nginx)只是内容的分发者,如果请求/in

用C写一个web服务器(四) CGI协议

* { margin: 0; padding: 0 } body { font: 13.34px helvetica, arial, freesans, clean, sans-serif; color: black; line-height: 1.4em; background-color: #F8F8F8; padding: 0.7em } p { margin: 1em 0; line-height: 1.5em } table { font-size: inherit; font: 10

CGI, FCGI, SCGI, WSGI 释异

IKI Links: CGI - http://en.wikipedia.org/wiki/Common_Gateway_Interface FCGI - http://en.wikipedia.org/wiki/Fcgi SCGI - http://en.wikipedia.org/wiki/SCGI WSGI - http://en.wikipedia.org/wiki/Wsgi Other reference: http://helpful.knobs-dials.com/index.ph

[转] 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

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-FPM,PHP-CLI,modPHP

This might give you a broader understanding of their difference: CGI: (common gateway interface) It is a specification "protocol" for transferring information between a Web server and a CGI program. A CGI program is any program designed to accep

CGI FastCGI WSGI 解析

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

十分钟搞懂什么是CGI

原文:CGI Made Really Easy,在翻译的过程中,我增加了一些我在学习过程中找到的更合适的资料,和自己的一些理解.不能算是严格的翻译文章,应该算是我的看这篇文章的过程的随笔吧. CGI真的很简单 在此之前,你或许听说过很多说CGI'晦涩难懂'的言论.如果你会写最基本的输入输出,那么你就可以写出一个CGI脚本.如果你已经是一个程序员,你只需要几分整就可以明白CGI到底是个什么东西.如果你还不是一个名程序员,对不起这篇文章不是很适合你,你可以先去学习一些编程的知识,例如脚本语言或者sh