oracle使用cgi吗_php架构之CGI、FastCGI、php-fpm有什么关系?原来这么简单
CGI、FastCGI、php-fpm
lnmp
在使用PHP开发应用时,我们用的最多的无非就是LNMP、LAMP等架构,这也是PHP开发的经典架构,使用起来简单好用,可正时因为简单好用, 使得很多人仅仅停留在会使用的层次上;CGI、FastCGI、php-fpm这些名词我们经常听到,但是你真的知道它们在整个架构中处于什么位置发挥什么作用吗?看完这篇文章,保证你如醍醐灌顶一般,清清楚楚。
http/https
一:CGI是什么?
CGI是一种协议,全称公共网关接口(Common Gateway Interface),什么是协议,就是一套标准,比如我们平时接触最多的http/https。CGI专门用在webServer(nginx、apache)与CGI程序之间通信,CGI应用程序就是用编程语言编写的应用程序,前提是这种语言具有标准输入、输出以及环境变量,比如php-cgi。
我们的webServer在收到用户的.php类型的请求,就会把请求提交给cgi程序,这时php-cgi程序根据提交参数进行处理,然后按照标准输出给webServer相应的html内容,服务器再返回给浏览器。整个过程中,CGI扮演了中间人的身份,完全独立于服务器和应用程序(php-cgi)之外。
网络图片
然而CGI有个很大的缺点,每一次的web请求都会退出进程,这也意味着每次请求都要重新开启进程,造成系统资源的浪费,在高并发的场景中,显然这不是最优的选择,因此就出现了FastCGI。
二:FastCGI又是什么?
FastCGI,从名字上看,应该是CGI的升级版,可以这么理解吧;不同于CGI的是,FastCGI是一种数据交互的二进制协议,没错,它仍然是一种协议,它的目的在于降低webServer与应用程序(php-cgi)之间交互的负载,提高单位时间内请求的吞吐量。
FastCGI使用常驻进程的方式处理请求,这些常驻进程都由FastCGI Server统一管理,跟webServer没有任何关系,请求过来时,webServer将环境变量和信息通过进程间通讯发送给FastCGI进程,处理完后返回给webServer,服务器再返回给浏览器。
万维网
FastCGI由于常驻进程,在请求量很小的时候仍然占用内存,因此,相比CGI消耗更多的系统的内存。php官方发布的php-cgi是自带FastCGI管理器的,然而在使用过程中,一旦修改php.ini配置文件,就要kill掉php-cgi进程,重新启动,不能热重启,所以又出现了php-fpm完美解决这个问题。
三:php-fpm厉害在哪?
web server简单请求过程
PHP-FPM全称:PHP FastCGI Process Manager,是用于管理php-fastcgi进程的管理器,php-fpm会开启一个master进程常驻,这个进程用来管理其他子进程work,而work进程则是按需开启,如果在一定时间段里没有请求到work进程,work进程就会被关闭,而当请求数量增大时,则会开启多个work进程来应付大量请求,work进程的最大数量不超过配置进程数。这样对进程池形成了很好的管理。也完美解决了上述两个问题。
php架构
怎么样?是不是感觉其实也没有想象中那么难理解,理解了这些,以后在解决问题的过程中,就能多几分把握问题关键点的几率。语言本没有好坏之分,架构则是一种思维体系,懂架构才能真正在技术的道路上越走越远。
今天的分享就到这里了,下期见!如果喜欢我的内容,关注我,下期更精彩~~
欢迎转发、留言~~
oracle使用cgi吗_php架构之CGI、FastCGI、php-fpm有什么关系?原来这么简单相关推荐
- cgi web 调用多次启动_CGI、FastCGI和PHPFPM有什么关系呢?
文章来自:php自学中心网站 链接:http://www.startphp.cn/front/php/0108111.html 作者:磊丰 商务合作:请加微信(QQ):2230304070 文章正文 ...
- cgi,fastcgi,php-cgi,php-fpm之间的关系
参考文章: https://segmentfault.com/q/1010000000256516 http://www.thinkphp.cn/topic/42338.html 这篇文章写的挺好:h ...
- C++ Web 编程 CGI公共网关接口(CGI):第一个 CGI 程序
Table of Contents C++ Web 编程 什么是 CGI? Web 浏览 CGI 架构图 Web 服务器配置 第一个 CGI 程序 Hello World! 这是我的第一个 CGI 程 ...
- CGI,FastCGI和PHP-FPM之间的关系和区别
CGI,FastCGI和PHP-FPM之间的关系和区别. 什么是CGI? 早期的web server只可以处理简单的静态web文件,但是随着技术的发展出现动态语言如PHP,Python.PHP语言交给 ...
- 什么是CGI?详细介绍Python CGI编程
本文转载自:http://www.php.cn/python-tutorials-362584.html....概念可以帮助理解,CGI编程什么的真的不用过分纠结,要是大神做架构得看,我这种小白会用框 ...
- boa服务器如何运行cgi,嵌入式WEB服务器BOA+CGI.ppt
嵌入式WEB服务器BOACGI 嵌入式WEB服务器:BOA+CGI 报 告 人: 李 实 * ASIPP 随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流 ...
- Oracle数据库实例之进程架构(二)
Oracle数据库实例之进程架构(二) 必需的后台进程 PMON PMAN LREG SMON DBW LGWR CKPT MMON & MMNL RECO 可选的后台进程 ARCn CJQ0 ...
- Oracle数据库实例之内存架构(一)
Oracle数据库实例之内存架构(一) Oracle数据库内存结构 基本内存结构 Oracle内存管理 用户全局区:UGA 程序全局区:PGA PGA的内容 专用和共享服务器模式下的PGA 系统全局区 ...
- 2 Oracle深度学习笔记 内存架构之UGA
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 2.Or ...
最新文章
- 阿里大佬总结的算法进阶指南,助你进大厂!
- mysql b-a全局索引_MySQL中B+树索引的使用
- apache+php windows下配置
- oracle怎么读取表空间文件大小,oracle获取表空间文件大小
- 网页游戏为什么容易赚钱?(From:07073)
- HDFS Shell API(常用)
- matlab 实验七 低层绘图操作,matlab实验内容解答.doc
- 八:Webpack的加载器
- 如何在win10上连接苹果无线键盘
- tpshop报 商业用途必须购买正版,使用盗版将追究法律责任
- RMQ---csu1809
- php对接腾讯云直播,聊天,im,云录制产生回放
- 日期和时间范围区间怎么查询
- java:实现三重缓冲区(附完整源码)
- python打开图片的几种方法
- 【数学建模论文】数学模型分析红楼梦作者
- python爬虫及其可视化
- 【推荐】2022年环保行业研究报告产业发展前景市场投资行情分析白皮书(附件中为网盘地址,报告持续更新)
- SparkStreaming实时计算pv和uv,注意事项以及生产问题
- VMware Workstation 虚拟机快照备份管理
热门文章
- 研发工程规范性模型-DevSecOps
- 虚拟机提示找不到引导映像_从ISO镜像启动虚拟机,安装OS时提示no usable disks have been foun...
- oracle 参数类型 存储过程 获取_oracle Array类型作为参数传入函数(存储过程) 大字符串参数解决方案...
- winform生成exe俩秒钟就退出_Python有多牛逼?三万多条数据,几秒钟全部搞定~
- php不能连接远程mysql_无法远程连接mysql怎么办
- ee可以有js吗 jvaa_EE今年最后一次邀请,最低分数线468分!2021年的40万新移民指标,你准备好了吗?!...
- Node.js基础学习(第二幕)
- 贝塞尔曲线初识 (数学)
- 三、java语法基础
- Javascript s04