博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php cgi nginx,cgi、fastcgi、php-fpm、nginx的个人理解。
阅读量:6502 次
发布时间:2019-06-24

本文共 725 字,大约阅读时间需要 2 分钟。

CGI(Common Gateway Interface)

公共网关接口,webserver与cgi程序之间传递信息的接口标准。保证webserver传递过来的数据是标准格式的。

平时说的cgi一般值cgi程序,即实现了cgi标准的程序。

webserver只能解析静态资源(html、css、js、img),碰到动态资源请求需要交给cgi程序去解析、php解析器会读取php.ini配置,加载扩展模块,然后初始化执行环境,处理请求,返回结果给webserver,退出进程,webserver返回给客户端。因为每来一个请求都要fork出一个新进程去处理。所以性能较低。

FastCGI是一种进程管理工具,管理内存中的CGI进程。

fastcgi在webserver启动时就会fork出一个主进程master,解析phg.ini,初始化执行环境,然后会fork出很多子进程worker,这些worker其实就是cgi的解析器,他们会常驻内存,处理完请求后不会退出。当空闲进程较多时,master会关闭一些闲置worker,所以性能较高。

php-fpm (FastCGI Process Manager)

从定义可以看出php-fpm就是fastcgi进程管理器。用来管理php cgi进程的一个东西。

php-fpm可以实现php的平滑重启。

命令如下

kill -USR2 $(ps -aux | grep php-fpm|awk '{print $1}")

在向php-fpm发送USR2信号后,它会重载所有worker进程,重新载入配置和扩展模块。

实际上平滑重启是保留所有子进程worker,杀掉主进程master,然后主进程重新生成子进程。

转载地址:http://mqlyo.baihongyu.com/

你可能感兴趣的文章
浏览器加载和渲染网页顺序
查看>>
深入剖析Android系统试读样章
查看>>
测试用例出错重跑--flaky插件
查看>>
yaf的安装
查看>>
比较java与C++的不同
查看>>
Twitter Storm入门
查看>>
使用scikit-learn进行文本分类
查看>>
Ansible自动化运维配置与应用(结合实例)
查看>>
下面简要介绍软件工程的七条原理
查看>>
Lua(三)——语句
查看>>
怎么看电脑有没有安装USB3.0驱动
查看>>
overflow清除浮动的原理
查看>>
Spring Boot 使用parent方式引用时 获取值属性方式默认@
查看>>
解决maven下载jar慢的问题(如何更换Maven下载源)
查看>>
linux安装gitLab
查看>>
concurrent包的实现示意图
查看>>
golang os.Args
查看>>
Linux常用命令
查看>>
spring-data-elasticsearch 概述及入门(二)
查看>>
Solr启动和结束命令
查看>>