CGI
cgi即 Common Gateway Interface 译作 通用网关接口
是应用程序与应用程序之间的输入输出协议。比如我们写信,规定了开头一句写称呼,中间写内容,最后署名和日期。看到这种格式,我们就知道这是一封信。我要知道写这封信的人或者日期。那么我就直接信的最后两行。cgi就是应用程序与应用程序之间通信格式规定。
php-cgi
cgi可以由任何语言实现,比如php-cgi就是一个实现了cgi的php应用程序,主要功能是解析cgi数据,使用php处理数据,然后在通过cgi返回给webserver。
fast-cgi
当应用程序需要使用cgi通信的时候,首先要创建进程,然后读取配置,处理完数据然后返回,最后销毁进程。每次启动销毁进程,还有读取配置,需要消耗大量系统资源,和花费更多的时间。当遇到大并发时候就会出现问题。造成拥堵。fast-cgi就是cgi的改进版,fast-cgi是常驻内存。 节省了创建和销毁进程的消耗,达到性能更优的目的。
php-fpm
php-fpm是实现fast-cgi的程序。php-fpm管理着fast-cig进程,当启动php-fpm时,程序会创建几个fast-cgi进程等待处理请求。当有进程挂掉时,php-fpm也会检查,然后自动重启新的进程。