温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Nginx和PHP-FPM的运行原理是什么

发布时间:2021-07-10 14:17:25 来源:亿速云 阅读:153 作者:chen 栏目:编程语言

这篇文章主要介绍“Nginx和PHP-FPM的运行原理是什么”,在日常操作中,相信很多人在Nginx和PHP-FPM的运行原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Nginx和PHP-FPM的运行原理是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

CGI

common gateway interface (公共网关接口)请求模式:Web Brower(浏览器) ----(通过http协议传输)----> Http Server(服务器nginx/apache) -----> CGI Program -----> DbServer 与 CGI 通过 STDIN/STDOUT(标准的输入/输出)进行数据传递nginx(动态加载模块) apache(指定加载模块)

CGI工作原理

每当客户请求CGI的时候,WEB服务器就请求操作系统生成一个新的CGI解释器进程(如php-cgi.exe),CGI 的一个进程则处理完一个请求后退出,下一个请求来时再创建新进程。当然,这样在访问量很少没有并发的情况也行。可是当访问量增大,并发存在,这种方式就不 适合了。于是就有了fastcgi。

FastCGI

像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次(这是CGI最为人诟病的fork-and-execute 模式)。一般情况下,FastCGI的整个工作流程是这样的:1.Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module)2.FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待来自Web Server的连接。3.当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。 Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。4.FastCGI 子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。  当FastCGI子进程关闭连接时, 请求便告处理完成。  FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 
      在CGI模式中,php-cgi在此便退出了。

php-fpm(PHP内置的一种fast-cgi)

php-fpm即php-Fastcgi Process Manager.php-fpm是 FastCGI 的实现,并提供了进程管理的功能。进程包含 master 进程和 worker 进程两种进程。master 进程只有一个,负责监听端口,接收来自 Web Server 的请求,而 worker 进程则一般有多个(具体数量根据实际需要配置),每个进程内部都嵌入了一个 PHP 解释器,是 PHP 代码真正执行的地方。

请求步骤

Web Brower(浏览器访问) www.example.com||
   通过http协议传输  ||http server
 (服务器nginx/apache)            || 配置解析    路由到 www.example.com/index.php||加载 nginx 的 fast-cgi 模块||fast-cgi 监听 127.0.0.1:9000 地址通过 fast-cgi 协议将请求转发给 php-fpm 处理||请求到达 127.0.0.1:9000||php-fpm 监听 127.0.0.1:9000可通过 php-fpm.conf 进行修改

到此,关于“Nginx和PHP-FPM的运行原理是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI