Nginx是如何与PHP协作的?

最早的Web服务器简单地响应浏览器发来的HTTP请求,
并将存储在服务器上的HTML文件返回给浏览器,也就是静态html。
事物总是不断发展,网站也越来越复杂,
所以出现动态技术,但是服务器并不能直接运行 php,asp这样的文件,
自己不能做,外包给别人吧,但是要做个约定,
就是我把请求参数发送给你,然后我接收你的处理结果返回给客户端。
这个约定就是 common gateway interface,简称cgi。
这个协议可以用vb,c,php,python 来实现。cgi只是接口协议,不是什么语言

nginx本身不能处理PHP,它只是个web服务器,当接收到请求后,如果是php请求,则发给php解释器处理,并把结果返回给客户端。
nginx一般是把请求发fastcgi管理进程处理
fastcgi管理进程选择cgi子进程处理结果并返回被nginx
php-fpm是什么
php-fpm即php-Fastcgi Process Manager.
php-fpm是 FastCGI 的实现,并提供了进程管理的功能。
进程包含 master 进程和 worker 进程两种进程。
master 进程只有一个,负责监听端口 而 worker 进程则一般有多个(具体数量根据实际需要配置),每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正执行的地方。
下面是流程图

为您推荐

评论已关闭