什么是FastCGI?

13 篇文章 0 订阅
12 篇文章 0 订阅

CGI即通用网关接口(Common Gateway Interface),它是一段程序,运行在服务器上,提供与客户端HTML页面的交互。

通俗的讲CGI就象是一座桥,把网页和WEB服务器中的执行程序连接起来,它把HTML页面提交的指令传递给服务器的执行程序,再把服务器执行程序的结果返还给HTML页面

一、传统CGI

  • 在CGI模式下每次请求PHP都要重新解析php.ini,重新加载全部扩展和初始化数据结构。
  • 每次HTTP服务器遇到动态脚本时,都要重启动脚本解析器来解析。fork-and-execute模式。
  • 安全性差。
  • 高并发时,效率低。

二、FastCGI

  • 可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口
  • 多数流行的HTTP server都支持,如:ApacheNginxlighttpd等。
  • 很多脚本语言支持,如:PHP。
  • FastCGI是从CGI发展改进而来的。
  • 采用C/S结构,HTTP服务器脚本解析服务器分离,多个脚本解析守护进程。
  • 扩展加载和数据结构初始化,在进程启动时只发生一次。

FastCGI原理图:

Internet 请求静态资源,Nginx 则直接返回静态资源。

请求动态脚本,Nginx 则将动态脚本转至 FastCGI 进程处理,完成后,返回处理结果给 Nginx,然后返回给Internet的客户端。

当 Nginx 将 CGI 请求发送给socket 的时候,通过 FastCGI 接口,wrapper接收到请求,然后派生出一个新的线程,这个线程调用解释器或者外部程序处理脚本并读取返回数据;

接着,wrapper 再将返回的数据通过 FastCGI 接口,沿着固定的 socket 传递给 Nginx;最后,Nginx 将返回的数据发送给客户端。

参考资料:

http://www.fastcgi.com




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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值