php和web服务器,php与web服务器关系

在解析这个问题前,先要讲述一个概念,什么是cgi程序?

1.什么是cgi程序,cgi与fastcgi的区别

CGI的中文名称是通用网关接口,是外部应用程序与web服务器之间的接口标准。CGI规范允许web服务器执行外部程序,并将它们的输出发送给web浏览器。而fastcgi则是一个常驻型的cgi,它可以一直执行着,不需求每次请求都必须fork进程来处理,此外,它还支持分布式运算,接受来自其他服务器的请求。

以下表格总结出它们的异同点:

web服务器

处理进程

CGI

fork一个新的进程处理

读取参数,处理数据,结束进程

FASTCGI

用tcp或者管道的方式与进程建立连接处理

处理数据后,进入循环,等待新请求

fastcgi不用fork新的进程处理请求,性能上比cgi程序要优。

2.PHP与web服务器通讯方式

1)php-fpm模式

php-fpm是一个php fastcgi管理器,可以视为php-cgi程序的守护进程。该模式下,php-fpm进程负责接收web服务器请求,分发给它的子进程——php-cgi来处理数据。这种模式一般搭配Nginx使用,其配置如下:

location ~ .*\.(php|php5)?$

{

try_files $uri =404;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include /etc/nginx/fastcgi.conf;

}       php-fpm已经纳入php内核,在编译时通过--enable-fpm来启用改功能。

2)mod_php模式

该模式下,一般是作为apache的一个模块启动的,apache在启动时,会读取php.ini文件并加载扩展模块,除非apache重启,php模块不会被重新加载。在该模式下,apache使用prefork模式(非线程型,预派生web服务器),或者worker模式处理(混合多线程多进程,由于使用线程处理请求,系统开销小于prefork模式,但是它既有多进程,因此也能保证prefork模式的稳定性)。由于不需要额外的进程通讯和应用解析,该模式性能要比fastcgi好得多。

以下,也作了一个表格,来对比fastcgi和mod_php

fastcgi

mod_php

性能

--

较好

易用性

跟web服务器无关,便于分布式处理,同时支持平滑重启

随apache启动,使用过程中无法重启

内存占用

内存占用较高

内存占用率较低,但每个请求都需求调用该模块,包括静态请求

3.PHP推荐服务器配置方式

综合以上的对比,可以利用每个模式的特性,一般常用的是nginx处理静态文件,php请求则是通过转发,让apache处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300303.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

股市红涨绿跌色系定义真的是中国特色吗?

20080809 郑昀玩聚 与G共舞刚才发表的《适应中国特色 谷歌财经图标改绿色为红色.》,提及“在其他证券交易所,股市上涨都是使用绿色,下跌使用红色,唯独中国大陆的沪深股市,颜色显示相反”。 一.并非独此一家 实际上&…

狂言50年要拿30个诺奖的日本,如今怎么样了?

全世界只有3.14 % 的人关注了青少年数学之旅2019年10月9日,日本化学家吉野彰(Akira Yoshino)因在锂离子电池的发明和应用领域做出的卓越贡献,与美国科学家 John B. Goodenough、英国科学奖 M. Stanley Whittingham 一起荣获2019年…

VS2022+.NET6+C#10,.NET开发起飞

VS2022.NET6C#10一起体验是啥感觉?爽!令人印象深刻的是VS2022打开超大项目的流畅,.NET6极致简化的MiniAPI框架,C#10各种炫酷新语法。看看下图的代码你能认识吗?来自.NET6的MiniAPI框架,直接在MapGet里面使用…

jdk8之lambda

2019独角兽企业重金招聘Python工程师标准>>> Oracle号称今年一定发布jdk8, 即使有bug, jdk8无疑最大的宠儿就是lambda表达式了,还是直接上代码,看看lambda表达式怎么了。 环境: openjdk8, eclipse4.3.1(支持jdk8编译) 实例代码&…

【转】Asp.Net中Excel操作权限的问题

近日在打开原来写的一个网页程序运行时,出现了Excel操作权限的问题,具体的说就是在代码中调用下面这段与Excel操作有关的语句时 Application curExcelApp new ApplicationClass(); 提示权限不足,具体的提示内容如下: 检索 COM 类…

再一贴[亲爱的,我不小心怀孕了~!]

这是我们第一次见面的酒吧。我们在这里度过了多少个夜晚,有过多少美好的回忆。  可是4月1日那天,我的心情很沉重,很忧郁。我不知道,这个消息对于我,对于你,对于我们意味着什么。我是如此渴望而又恐惧。 …

python路径长度限制,Linux下文件名长度限制

Linux下文件名长度限制出现场景:在迭代中有一个需求是将pdf文件名修改为所有班级的名称集合,出现的班级过多导致的文件名过长在linux下无法创建文件和文件夹的情况解决方式:经过查证,linux中文件名最长为255字符,文件路…

Visual Studio 2022 预览版2 发布啦

我们很高兴地宣布 Visual Studio 2022 的第二个预览版发布啦!预览版 1 是有史以来第一个 64 位 Visual Studio,提供了改进的可扩展性。从预览版 2 开始,我们专注于提供有关个人和团队生产力、现代开发和不断创新等主题的新功能。在本文中&…

批作业是小学老师的一大乐趣 | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅

【小安翻唱】凉宫春日的忧郁--冒険でしょでしょ第五届外语歌曲大赛助兴节目~绫魂论坛送aya的生日礼物筹备开始~...

第五届外语歌曲大赛如火如荼的进行的听了那么多参赛选手的歌曲自己也不由的也想唱唱正好遇上绫魂论坛的各位管理员为aya筹备生日礼物 好吧~ 我也来小唱一首 小小的final版送上~(非正式版 请无视错词和中间以及最后的杂音 灭哈哈) 顺便再借用了一下某位选…

免费电影下载

迅雷资源,速度稳定.我一直都在用..好东西不能一个人独享,拿出来分享..菜熊视讯最大的影视迅雷下载站!完全免费,并且每天还大批量更新![url]http://www.caixiong.com/?445419.htm[/url]转载于:https://blog.51cto.com/douvip/12485

进入51cto之后的发展方向

这里是个不错的学习环境,值得珍惜。来到这里,我发现这里正是我梦寐以求的学习之天堂,这里可以肆无忌惮的贪婪的学习,可以感受到融洽的美好的氛围。我很愉快的开通的博客,并且珍惜这一次难得的机会去疯狂学习。我要确定…

oracle中文加密算法,Oracle数据库替代加密算法

替代密码算法的原理是使用替代法进行加密,就是将明文中的字符用其它字符替代 后形成密文。例如:明文字母a、b、c、d ,用D、E、F、G做对应替换后形成密文。这里在Oracle的存储过程,通过替换加密算法来实现密码存入数据库时的加密。…

.net中单元测试

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类&…

WCF后续之旅(11): 关于并发、回调的线程关联性(Thread Affinity)

对于一般的多线程操作,比如异步地进行基于文件系统的IO操作;异步地调用Web Service;或者是异步地进行数据库访问等等,是和具体的线程无关的。也就是说,对于这些操作,任意创建一个新的线程来执行都是等效的。…

成年人改变生活的方式,都是从它开始

全世界只有3.14 % 的人关注了青少年数学之旅2019已经不足80天,年初立下的flag倒了几个?史蒂夫马丁有一句话:“所有的人生谜语都可以从阅读中找到答案。”无论是读影评、读好书,亦或者涉猎趣闻轶事、汲取犀利观点,总会悄…

组策略链接顺序优先级

“链接顺序”最低的 GPO 最后处理,因此具有最高的优先级。

oracle体系结构和组件图示,Oracle 体系结构组件

Oracle数据库主要由两大组件构成:实例:进程与内存结构。数据库:操作系统文件。实例是我们访问数据库的接口。一个实例只能打开一个数据库。当你用SQLPlus或其它的客户端工具去连接Oracle数据库时,你的客户端进程与服务器端进程通讯…

Request.ServerVariables的详细应用(转)

Request.ServerVariables应用 【摘 要】本文详细介绍关于学习ASP知识之Request.ServerVariables应用的文章专题。本机ip:<%request.servervariables("remote_addr")%>服务器名:<%Request.ServerVariables("SERVER_NAME")%>服务器IP:<%Requ…

uiview生命周期

在viewDidAppear方法中做了一段页面开始的动画&#xff0c;但是动画效果在横屏是没有问题的&#xff0c;在竖屏轨迹总是不对。解决方法执行顺序的问题&#xff0c;页面的加载顺序是2011-11-04 13:48:21.290 jjj[4048:707] viewDidAppear2011-11-04 13:48:21.291 jjj[4048:707] …