我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

它是一个可扩展的高速接口,用于与动态脚本语言进行通信。支持最流行的,包括 、Nginx 等。同时,它也得到许多脚本语言的支持,包括PHP。它是在CGI的基础上发展和改进的。传统的CGI接口方法的主要缺点是性能较差,因为每次HTTP服务器遇到动态程序时,都需要重新启动脚本解析器来执行解析,然后将结果返回给HTTP服务器。这在处理高并发访问时几乎无法使用。另外,传统的CGI接口方式安全性较差,目前已很少使用。界面采用C/S结构,可以将HTTP服务器和脚本解析服务器分离,并在脚本解析服务器上启动一个或多个脚本解析守护进程。 HTTP服务器每次遇到动态程序时,都可以直接传递给进程执行,然后将结果返回给浏览器。这种方式可以让HTTP服务器专门处理静态请求或者将动态脚本服务器的结果返回给客户端,从而大大提高了整个应用系统的性能。 2、Nginx+运行原理 Nginx不支持外部程序的直接调用或解析。所有外部程序(包括PHP)都必须通过接口调用。 Linux下的接口是(这个可以是一个文件,也可以是一个文件)。 :为了调用CGI程序,还需要一个(可以理解为用来启动另一个程序的程序),它与固定的东西绑定,比如端口或者文件。当Nginx向此发送CGI请求时,它通过接口接收请求,然后Fork(派生)一个新线程。该线程调用解释器或外部程序处理脚本并读取返回数据;然后,它返回的数据通过接口沿着固定的路径传递给Nginx;最后,Nginx将返回的数据(html页面或图片)发送给客户端。这就是Nginx+的整个运行流程,如图1-3所示。

因此,我们首先需要一项需要完成的工作:

通过调用(库)函数并与ningx通信(读写是内部实现的函数,不透明)

调度、分叉和杀死

与 (php) 沟通

3.spawn-fcgi和PHP-FPM

该接口方法在脚本解析服务器上启动一个或多个守护进程来解析动态脚本。这些进程是进程管理器或引擎。 spawn-fcgi 和 PHP-FPM 是两个支持 PHP 的进程管理器。因此它可以完全释放出来,以实现更好的响应和并发处理。

spawn-fcgi 和 PHP-FPM 的异同:

1)spawn-fcgi是HTTP服务器的一部分。现在已经成为一个独立的项目,一般与其配合使用来支持PHP。但spwan-fcgi在高并发访问时可能会导致内存泄漏甚至自动重启。即:PHP脚本处理器崩溃。如果用户此时访问,可能会出现白页(即PHP无法解析或者出现错误)。

2)Nginx是轻量级的,必须使用第三方处理器来解析PHP。因此,看起来nginx是非常灵活的。可以连接任何提供解析功能的第三方处理器来实现解析。 PHP 的解析(易于在 nginx.conf 中设置)。 nginx也可以使用spwan-fcgi(需要一起安装,但是需要避开nginx的端口,有些老博客有这方面的安装教程)。但由于spawn-fcgi存在上述被用户逐渐发现的缺陷,所以现在慢慢减少nginx+spawn-fcgi组合的使用。

由于spawn-fcgi的缺点,现在出现了第三方(目前包含在)PHP处理器PHP-FPM。与spawn-fcgi相比,它具有以下优点:

由于是作为PHP补丁开发的,所以在安装时需要和PHP源码一起编译,也就是说编译正确,所以在性能方面比较好;

同时在处理高并发方面也比spawn-fcgi更好,至少不会自动重启处理器。因此,推荐使用Nginx+PHP/PHP-FPM的组合来解析PHP。

与Spawn-FCGI相比,PHP-FPM具有更好的CPU和内存控制能力,而前者容易崩溃,必须进行监控,而PHP-FPM则没有这样的烦恼。

主要优点是将动态语言和PHP-FPM分离,因此Nginx和PHP/PHP-FPM往往部署在不同的服务器上,以分担前端Nginx服务器的压力,使Nginx可以独占静态请求的处理和转发动态请求,而PHP/PHP-FPM服务器专门解析PHP动态请求。

4.Nginx+PHP-FPM

PHP-FPM是一个管理管理器。它作为 PHP 的插件而存在。当你安装了PHP,想要使用PHP-FPM时,需要在老版本php(php5.3.3之前)以补丁的形式安装PHP-FPM。 PHP-FPM实际上是PHP源码的补丁,旨在将进程管理集成到PHP包中。必须将其打补丁到您的PHP源代码中,编译并安装PHP后才能使用。

PHP5.3.3集成了php-fpm,不再是第三方包。 PHP-FPM提供了更好的PHP进程管理方法,可以有效控制内存和进程,并且可以平滑地重新加载PHP配置。它比spawn-fcgi有更多的优点,因此被正式包含在PHP中。您可以通过./中的--fpm参数开启PHP-FPM。它已经在php5.3.5的核心中了,所以当时不需要添加---。老版本如php5.2需要添加此项。我们安装Nginx和PHP-FPM后,配置信息:

PHP-FPM php-fpm.conf 的默认配置:

.0.0.1:9000#表示PHP进程监听的IP地址和端口。

Nginx配置运行php:编辑nginx.conf并添加以下语句:

〜\.php${

;

.0.0.1:9000;指定进程侦听的端口。这就是 nginx 与 php 交互的地方。

.php;

s;

/usr/本地

英寸

毫升$;

Nginx使用指令将所有以php为后缀的文件交给127.0.0.1:9000进行处理,而这里的IP地址和端口就是进程监听的IP地址和端口。

其整体工作流程:

1)。进程管理器 php-fpm 进行自身初始化,启动主进程 php-fpm 并启动 CGI 子进程。

主进程php-fpm主要管理子进程,监听9000端口。

子进程等待来自的连接。

2)当客户端请求到来时,Nginx传递指令将所有后缀为php的文件交给127.0.0.1:9000进行处理。即Nginx传递指令将所有后缀为php的文件交给127.0.0.1:9000。 127.0.0.1:9000 来处理。

3) 进程管理器PHP-FPM选择并连接到子进程CGI解释器。将 CGI 环境变量和标准输入发送到子进程。

4) 子进程完成处理后,将从同一个连接返回标准输出和错误信息。当子进程关闭连接时,请求完成。

5)。然后子进程等待并处理来自进程管理器(运行中)的下一个连接。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/7970.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线