nginx php fastcgi

nginx是俄罗斯人Igor Sysoev编写的一个轻量级的HTTP服务器,它是一个高性能的HTTP和反向代理服务器,特别适合于高并发IO密集型的web服务。

由于nginx采用了Linuxepoll网络IO模型,而Apache采用的是传统的Select模型,因此在高并发IO的情况下,nginx的表现要远远优于apache


apache不仅可以处理静态文件,也可以通过模块的方式执行如php等的脚本文件。而nginx很简单,只能处理静态文件,对于php等的脚本文件,只能交由CGIFastCGIApache等执行,然后返回结果。


这里重点介绍下FastCGI


CGI通用网关接口(Common Gateway Interface的简称,它可以接收Web服务器的请求,执行相关的处理程序,然后返回数据给Web服务器,Web服务器最后再返回数据到用户。它独立于具体的语言,所以CGI可以用任何语言来编写,只要这种语言具有标准输入、输出和环境变量,例如phpperltcl等。


FastCGICGI的一种改进方案,CGI的缺陷在于当一个请求过来之后都需要fork一个进程来处理请求(forkandexecute模式),这种CGI程序的反复加载导致了性能的低下。FastCGI是一种常驻的CGI,它可以一直运行,并且根据当前的服务压力,可以动态调整CGI解释器进程的数量。FastCGI启动后先进行自我初始化,开启多个CGI进程,轮番让空闲的CGI进程接收及响应请求。FastCGI有自己的内存管理机制,启动后一直停留在内存中,但处于挂起状态,只有HTTP请求时,FastCGI才会响应执行,完成后断开链接,继续挂起。


一般情况下,FastCGI的工作流程:

1FastCGI进程管理器启动后进行自身初始化,并且启动多个CGI解释器进程并等待来自Web服务器的请求。

2)当客户端请求到达Web服务器时,FastCGI选择并连接到一个CGI解释器,Web服务器将CGi环境变量和标准输入发送到FastCGI子进程php-cgi;

3FastCGI子进程完成处理后将标准输出和错误信息从统一连接返回Web服务器,当FastGI子进程关闭连接时,请求便处理完成。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值