FastCGI详解

什么是CGI服务:

HTTP服务和其机器上的其他应用服务进行通信交流的工具。

缺点:性能较差,每次HTTP服务器遇到动态程序需要重新启动解析器来执行解析,然后返回给HTTP服务器。

什么是FastCGI:

HTTP服务器和动态脚本语言间通信的接口(FastCGI接口在Linux下是socket,可以是文件socket,也可以是ip socket)。主要优点是:动态语言和HTTP服务器分离开来。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,可以提高性能。                  

FastCGI的应用:

如上:

FastCGI使用的是C/S架构,Nginx作为客户端,PHP程序作为服务端。

php-fpm守护进程可在php-fpm.conf中配置,php解析器在php.ini中配置。

过程:

用户通过浏览器向nginx发送后缀名为php的请求,Nginx fastcgi_pass(

FastCGI客户端)发送FastCGI请求到PHP程序(服务端),为了调用CGI程序,

需要FastCGI的 wrapper(可理解为启动另一个程序的程序),wrapper绑定

在某个固定的socket上,如unix socket和tcp scoket. Nginx将CGI请求发

送给这个socket时,通过FastCGI接口,wrapper接收到请求,派生一个新的

线程,这个线程调用解释器或外部程序处理脚本并读取返回数据,接着wrapper

将返回的数据通过FastCGI接口,沿着固定的socket传递给Nginx,Nginx再将返回

的数据发送给客户端.

什么是PHP-FPM

FastCGI管理器:

在此之前,FastCGI进程是由操作系统管理的,一旦某个FastCGI进程发生故障,就

可能危机操作系统的正常运行,FastCGI的作用就是在操作系统和FastCGI之间建立

一道围墙,从而阻断了FastCGI的故障向操作系统的传播.

PHP-FPM能够调度PHP-CGI进程:

PHP的解析器是PHP-CGI.PHP-CGI只是个CGI程序,他自己本身只能解析请求,返回结果,

不会进程管理,所以就出现里一些能够调度PHP-CGI进程的程序,而PHP-FPM就是能够调

度PHP-CGI进程的程序中的一种.

时间: 2024-08-01 06:33:55

FastCGI详解的相关文章

Centos 安装fastcgi详解与用例

1.fastcgi简介 fastcgi解决了cgi程序处理请求每次都要初始化和结束造成的性能问题.fastcgi并且是独立于webserver的,fastcgi的crash并不影响webserver,然后他们之间通过soket通信.与fastcgi不同的另一种解决cgi程序反复创建,销毁的方法是让webserver开放api,然后编写cgi的时候,把cgi嵌入到webserver中,这样有个不好的地方就是cgi的crash会影响到webserver. 支持fastcgi的服务器有很多比如,ngi

Fastcgi优化配置详解

在申请的 三 丰 免 费 云 主 机 上 部署了Nginx服务器.服务响应不太理想,研究了一翻nginx相关缓存方面的原理,对Fastcgi优化配置作一记录.Nginx的Fastcgi cache是用来缓存用户请求,当用户下次再进行同样的访问的时候直接将缓存结果返回给用户,避免了Nginx再向上游请求结果的过程,使服务性能大幅度提升,如果服务是静态可缓存的话使用这个模块能够明显缩短用户请求时间同时节省服务器资源,大大提升服务的QPS. Fastcgi优化配置详解就优化性能参数设置,下面会从两个模

高性能Web服务之nginx应用详解

一.Nginx特性 * *模块化,目前只能将模块编译进Nginx,暂时不支持动态装卸模块.(httpd优势) * *可靠性,一个主进程(master)控制多个工作进程(worker),工作进程响应用户多个请求(httpd劣势) * *低内存消耗,(httpd劣势) * *支持热部署,(httpd相同) * *支持事件驱动I/O,AI/O,支持mmap(httpd2.4才算支持event,劣势) 二.Nginx基本架构 Nginx由一个master进程生成多个worker进程,每个worker进程

php-fpm的配置详解

php5.3自带php-fpm /usr/local/php/etc/php-fpm.confpid = run/php-fpm.pidpid设置,默认在安装目录中的/var/run/php-fpm.pid,建议开启 error_log = log/php-fpm.log错误日志,默认在安装目录中的/var/log/php-fpm.log log_level = notice错误级别. 可用级别为: alert(必须立即处理), error(错误情况), warning(警告情况), notic

php-fpm 启动参数及重要配置详解

约定几个目录 /usr/local/php/sbin/php-fpm /usr/local/php/etc/php-fpm.conf /usr/local/php/etc/php.ini 一,php-fpm的启动参数               (具体问题解决要更具具体目录来) 1 2 3 4 5 6 7 8 9 10 11 12 13 #测试php-fpm配置 /usr/local/php/sbin/php-fpm -t /usr/local/php/sbin/php-fpm -c /usr/

Nginx服务器搭建和基本配置详解

nginx Nginx(engine X) 是一个高性能的 HTTP 服务器和反向代理服务器,这款软件开发的目的是为了解决 C10k 问题. Nginx 的架构利用了许多现代操作系统的特性,以实现一个高性能的 HTTP 服务器.例如在 Linux 系统上,Nginx 使用了 epoll,sendfile,File AIO,DIRECTIO 等机制,使得 Nginx 不仅性能高效,而且资源占用率非常低,官方宣称 nginx 维持 10000 个非活动的 HTTP keep-alive 连接仅需要

Nginx反向代理、负载均衡、页面缓存、URL重写及读写分离详解

大纲 一.前言 二.环境准备 三.安装与配置Nginx 四.Nginx之反向代理 五.Nginx之负载均衡 六.Nginx之页面缓存 七.Nginx之URL重写 八.Nginx之读写分离 注,操作系统为 CentOS 6.4 x86_64 , Nginx 是版本是最新版的1.4.2,所以实验用到的软件请点击这里下载:http://yunpan.cn/QXIgqMmVmuZrm 一.前言 在前面的几篇博文中我们主要讲解了Nginx作为Web服务器知识点,主要的知识点有nginx的理论详解.ngin

HTTP协议详解以及URL具体访问过程

1.简介 1.1.HTTP协议是什么? 即超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准.从网络参考模型来看,它是属于应用层.它规定了计算机通信网络中两台计算机之间进行通信所必须共同遵守的规定或规则,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器. 简单的来说,它就是基于应用层一个规范一个标准!通讯双发都需要遵守这一准则,这就是http协议! 1.2.http简史

大型网站架构系列:负载均衡详解(3)

本次分享大纲 软件负载均衡概述 Ngnix负载均衡 Lvs负载均衡 Haproxy负载均衡 本次分享总结 一.软件负载均衡概述 硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用.因此软件负载均衡在互联网领域大量使用.常用的软件负载均衡软件有Nginx,Lvs,HaProxy等.本文参考大量文档,部分为直接拷贝,参考出处见负载均衡详解(4). 二.Ngnix负载均衡 Ngnix是一款轻量级的Web服务器/反向代理服务器,工作在七层Http协议的负载均衡系统.具有高性