之前项目中碰到了一些php-fpm的问题:因为网站的一些接口,在特定情况下响应特别慢(1-2分钟),迟迟不结束,导致php-fpm数量越来越多,最后到达127个后,服务器就没能响应正常请求了,浏览器一直打转,迟迟不响应。把接口修好后,php-fpm进程的数量就稳定了,问题得以解决。这让我对php-fpm这个进程产生了兴趣。
在百度和google了不少文章后,我总结了一下关于CGI,fastCGI,PHP-FPM,php-cgi的概念,还有nginx解析PHP的过程,如下:(博主知识水平有限,如果有不对的地方,欢迎大家指正)
1、什么是CGI
CGI是Common Gateway Interface(公共网关接口)的缩写,它有什么用呢?我们知道浏览器访问一个含有动态数据的页面,浏览器使用HTTP协议发送请求。数据包经过路由器和交换机,到达目标web服务器,web服务器收到这个请求,需要和PHP通信,才能拿到含有动态数据的页面。为什么要通信?因为他们语言不通(nginx等web服务器和php语言和语法不一样,没法直接沟通)
那么,要怎么通信呢?最早是用CGI协议来通信。通过CGI协议&#x