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

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

这是听力状态,表明机器正在开放端口上聆听,等待远程计算机的连接

侦听状态是指网络服务器程序所在的状态,在该状态下,服务器程序等待客户端的链接。

在另一篇关于NGINX和关系的文章中,我们提到Nginx模块提供了主要处理这些映射关系的说明。以下是NGINX的配置文件,该文件主要完成将NGINX中的变量转换为可以在PHP中理解的变量的工作。

(文章地址:

这是解释:

 

$$;#脚本文件请求的路径,即,在访问127.0.0.1/index.php时,您需要在网站的根目录下读取index.php文件。如果未配置此配置项目,则NGINX不会返回网站root 访问.php文件,因此它返回空白

$; #参数;例如?app = 123

$; #动作(获取,发布)

$;请求标题中的#-Type字段

$; # - 请求标题中的字段。

$; #名称

$; #所请求的地址不包含参数

$; #与$ uri相同。

$; #网站的根目录。配置中的根指令中指定的值

$; #请求使用的协议通常为HTTP/1.0或HTTP/1.1。

CGI/1.1; #CGI版本

nginx/$; #nginx版本号,可以修改并隐藏

$; # IP

$; #端口

$; # IP地址

$; #端口

$; #名称,配置中指定的域名

$; #变量

- 仅使用PHP,如果使用--- php - -

200;

在PHP中,您可以打印上述服务环境变量,例如:echo $ ['']

1)CGI

CGI的全名是“公共网关接口”(),它是HTTP服务器与其他机器上的程序进行通信的接口。程序必须在网络服务器上运行。

CGI是为了确保网络传递的数据以标准格式为标准。

笔记:

只要具有标准输入,输出和环境变量,CGI就可以用任何语言编写。

2)

这是一个可以一直执行的居民CGI。一旦激活,每次都不会花时间叉一次(这是CGI的最批评的叉子模式)。它还支持分布式操作。

也就是说,该程序可以在网站服务器以外的主机上执行,并接受其他网站服务器的请求。

这是与语言无关的,可扩展的架构开放的CGI扩展,

它的主要行为是将CGI解释器过程保持在内存中,从而实现高性能。

我们知道,重复加载CGI解释器是CGI性能较低的主要原因。如果CGI解释器存储在存储器中并通过过程管理器计划接受,则可以提供良好的性能,可伸缩性等。

优势:

1。不依赖语言;

2。独立于核心Web服务器运行,提供了比API更安全的环境。 API将应用程序的代码与Core Web服务器联系起来。

这意味着错误API中的应用程序可能会损坏其他应用程序或核心服务器。恶意API的应用代码甚至可以窃取另一个应用程序或核心服务器的键;

3。技术的当前支持语言包括:C/C ++,Java,Perl,Tcl,Ruby等。相关模块也可以在ISS等流行服务器上使用;

4。它不取决于任何Web服务器的内部体系结构,因此,即使服务器技术变化,也保持稳定且不变;

缺点:

因为它是多进程,所以它比CGI多线程消耗的服务器内存更多。 PHP-CGI解释器每个过程消耗7至25兆兆。将该数字乘以50或100是大量内存。

NGINX 0.8.46+PHP 5.2.14()服务器具有30,000个并发连接,并且启用的10个NGINX进程消耗了150m内存(150m*10 = 150m)。

打开的64个PHP-CGI进程消耗了1280m内存(20m*64 = 1280m),并且系统本身消耗的内存消耗,总消费量小于2GB的内存。如果服务器内存很小,则只能启用25个PHP-CGI进程,因此PHP-CGI消耗的总内存仅为500m。

以上数据摘自NGINX 0.8.X + PHP 5.2.13(),以构建一个更好的Web服务器,该Web服务器要好得多十倍(版本6)。

首先,CGI做什么? CGI旨在确保Web传递的数据以标准格式为标准格式,这对于CGI程序的作者来说很方便。

Web(例如NGINX)只是内容的分销商。例如,如果您请求 /index.html,Web将在文件系统中找到文件,并将其发送到分布静态数据的浏览器。好的,如果请求是 /index.php,根据配置文件,nginx知道这不是静态文件,并且需要找到PHP解析器来处理它,则它将简单地处理请求并将其交给PHP 。 nginx将传递到PHP解析器哪些数据?您需要使用URL,需要有查询字符串,需要有发布数据,而HTTP不丢失。好的,CGI是一个协议,指定要传输的数据以及以哪种格式传递给后者来处理请求。仔细考虑一下,您在PHP代码中使用的用户来自何处。

当Web接收 /index.php请求时,将启动相应的CGI程序,即PHP解析器。接下来,PHP解析器将解析php.ini文件,初始化执行环境,然后处理请求,然后以指定的CGI指定的格式返回处理的结果,然后退出该过程。网络将结果返回到浏览器。

好的,CGI是一个协议,无论是过程还是其他内容都没关系。那是什么?它用于提高CGI程序的性能。

为了提高性能,CGI计划的性能问题是什么? “ PHP解析器将解析PHP.INI文件并初始化执行环境”,仅此而已。标准CGI将为每个请求执行这些步骤(不累!开始过程非常累!),因此处理时间将更长。这显然是不合理的!那是怎么做到的?首先,将首先启用一个,将解析配置文件,将初始化执行环境,然后启动多个。当请求到达时,它将传递给一个,然后可以立即接受下一个请求。这避免了反复的劳动,并且自然有效。而且,如果没有足够的时间,您可以根据配置事先开始一些并等待;当然,当空闲太多时,有些会停止,这将提高性能并节省资源。这是过程的管理。

那么什么是php-fpm?这是一个已实施的计划,并被PHP正式接受。

众所周知,PHP的解释器是PHP-CGI。 PHP-CGI只是一个CGI程序。它只能解析请求并返回结果,但无法管理该过程(Ma下,我真的做不到!),因此一些可以安排PHP-CGI过程的程序,例如分开的Spawn-FCGI。好吧,PHP-FPM也是如此。经过长时间的发展,它逐渐获得了所有人的认可(您应该知道,在过去的几年中,每个人都抱怨PHP-FPM的稳定性较差),并且它变得越来越受欢迎。

好的,终于来回来了。

互联网上的某些人说这是一项协议,而PHP-FPM实现了此协议

正确的。

有人说PHP-FPM是一个用于管理流程的过程管理器。

正确的。 PHP-FPM的管理对象是PHP-CGI。但是不能说PHP-FPM是过程管理器,因为如前所述,似乎没有这样的过程。即使有php-fpm,也无法对其进行管理(至少目前)。有人说PHP-FPM是PHP内核的补丁

这是在就在。因为在开始时,php-fpm不包括在PHP内核中,要使用此功能,因此您需要找到与源代码版本相同的PHP-FPM来修补内核然后对其进行编译。后来,在PHP内核集成了PHP-FPM之后,它变得更加方便,只需使用--- fpm汇编参数即可。

有人说,在修改php.ini配置文件后,无法平稳重新启动,因此PHP-FPM诞生了。

是的,在修改了php.ini之后,PHP-CGI过程确实无法平稳重新启动。 PHP-FPM的处理机制是使用新的配置。处理现有工作后,您可以休息。这种机制可以使过度使用。

有人还说,PHP-CGI是PHP拥有的经理。那么,为什么需要使用PHP-FPM呢?

错误的。 PHP-CGI只是一个解释PHP脚本的程序。

本文的原始地址:

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

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

项目经理在线

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

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

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线