关于cgi,fastcgi的一些问题,有些同学还是搞混,好吧,这里说一下。
1、cgi,其实是个概念,一个协议。webserver和后端程序通信的一个协议,比如要传啥内容给后端程序,用户请求的query?get?post?cookie ?.. cgi只是规定了一些内容。。
2、fastcgi,fast..顾名思义,就是更快一些,性能更高一些。怎么高法?你得了解一下传统的cgi实现,比如php,每次webserver收到请求后,请求会转移到php程序去执行,这个程序咱们一般称作php-cgi。这个解释程序一般启动都会做一些初始化工作比如解析php.ini,初始化内存池,加载so等预分配操作,以至于为后面执行php代码提供一个完整的环境,然后开始解析执行我们的php代码。整个过程中,除了php代码执行外,其他部分,每次一个请求过来,都要重复的执行,显然会很慢,因为做了很多重复的工作。而fastcgi呢,优化了这一流程,首先,有个master进程,管理多个worker进程,当master进程启动的时候,把前期执行的环境全部预备好(ini解析,初始化内存池、加载so与其他),然后同步到worker去,这样,worker就可以专心的解析并执行php代码就好。当然了,master进程做的事情还有很多…不一一说明了。。
杂谈(fastcgi)
最新推荐文章于 2023-05-06 16:59:28 发布