什么是CGI,FastCGI,PHP-FPM

CGI

通用网管接口(Common Gateway Interface),可以让一个客户端从网页浏览器向服务器上的程序请求数据。CGI描述了服务器和请求处理程序之间传输数据的一种标准。

1.Common

这个词很好的描述了CGI的特性---通用,它可以用任何脚本或者编程语言实现,例如Python,PHP,C/C++等,独立于任何语言。

2.Gateway

网关,又称网间连接器,协议转换器。它在计算机家族里面扮演者一个重要的角色---翻译器,使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间。

3.Interface

接口,其实就是统一的规则。就像打游戏,游戏有游戏的规则,只有玩家遵守了这些规则,游戏才能玩下去,分出高低输赢。

运行原理

  1. Web服务器收到URL的请求,把HTTP请求中的信息以环境变量的方式写入OS。
  2. 启动一个CGI程序,通过语言本身库函数获取变量,或者以标准输入(stdin)获取数据。
  3. CGI程序按照预定的方法对请求进行处理后将结果返回给Web服务器,Web服务器再返回给用户。

虽然CGI完全独立与任何服务器,可以做各种语言的翻译器,但是每一次Web请求都会有启动和推出过程,在用户量非常大的时候,这个操作会大大的降低Web服务器的性能,于是FastCGI就诞生了。

FastCGI

快速通用网关接口(Fast Common Gateway Interface/FastCGI)是一种让交互程序与Web服务器通信的协议。FastCGI是早期通用网关接口(CGI)的增强版本。FastCGI致力于减少网页服务器与CGI程序之间交互的开销,从而使服务器可以同时处理更多的网页请求。

PHP-FPM

PHP FastCGI运行模式的一个进程管理器,PHP-FPM 会创建一个主进程,控制何时以及如何将HTTP请求转发给一个或多个子进程处理。PHP-FPM主进程还控制着什
么时候创建(处理Web应用更多的流量)和销毁(子进程运行时间太久或不再需要了)
PHP子进程。PHP-FPM进程池中的每个进程存在的时间都比单个HTTP请求长,可以处
理10、50、100、500或更多的HTTP请求

发布了9 篇原创文章 · 获赞 3 · 访问量 1318

猜你喜欢

转载自blog.csdn.net/qq_34051908/article/details/91409002