php+apache 和 php+nginx的区别

apache是通过mod_php来解析php ;

nginx是通过php-fpm(fast-cgi)来解析php;

1. PHP 解释器是否嵌入 Web 服务器进程内部执行

mod_php 通过嵌入 PHP 解释器到 Apache 进程中,只能与 Apache 配合使用,而 cgi 和 fast-cgi 以独立的进程的形式出现,只要对应的Web服务器实现 cgi 或者 fast-cgi 协议,就能够处理 PHP 请求。 mod_php 这种嵌入的方式最大的弊端就是内存占用大,不论是否用到 PHP 解释器都会将其加载到内存中,典型的就是处理CSS、JS之类的静态文件是完全没有必要加载解释器。

2. 单个进程处理的请求数量

mod_php 和 fast-cgi 的模式在每个进程的生命周期内能够处理多个请求(fast-cgi可以根据需要来调整进程的多少),而 cgi 的模式处理一个请求就马上销毁进程,在高并发的场景下 cgi 的性能非常糟糕。

每一个Web请求PHP都必须重新解析php.ini、重新载入全部dll扩展并重初始化全部数据结构。使用FastCGI,所有这些都只在进程启动时发生一次

综上,如果对性能有极高的要求,可以将静态请求和动态请求分开,这时 Nginx + php-fpm 是比较好的选择。

PS: cgi、fastcgi 通常指 Web 服务器与解释器通信的协议规范,而 php-fpm 是 fastcgi 协议的一个实现。

NGINX+PHP好,还是NGINX+APACHE+PHP好?

NGINX+APACHE+PHP会更好,因为可以充分利用NGINX的“反向代理”技术。将静态文件由NGINX处理,动态文件(PHP)由APACHE处理,这是最高效的处理方式。

但是,一般网站都不需要这么做,因为没有高并发的情况下,这样做并不能体现非常大的优势。

如果是商城,比较注重速度的,就使用NGINX+PHP;如果是政府网站等,比较注重稳定性的,就使用APACHE+PHP。

当然,如果不嫌麻烦,完全可以搭建NGINX+APACHE+PHP的环境。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏web

记一次webpack打包优化

26460
来自专栏Youngxj

emlog插件微信推送最新文章

31920
来自专栏技术博文

SSDB 配置文件

SSDB 的配置非常简单, 附带的 ssdb.conf 你不用修改便可以使用. 如果你要高度定制, 还是需要修改一些配置的. 下面做介绍. SSDB 的配置文件...

28050
来自专栏Maroon1105

学习如何安装Ansible和运行Playbooks

考虑管理服务器机队的单调; 让它们全部更新,将更改推送给它们,复制文件等。事情可能会很快变得复杂和耗时,但它不一定是这样。

63010
来自专栏FreeBuf

Bash漏洞批量检测工具与修复方案

Linux官方内置Bash中新发现一个非常严重安全漏洞,黑客可以利用该Bash漏洞完全控制目标系统并发起攻击。 Bash远程命令执行漏洞(CVE2014-627...

249100
来自专栏云计算教程系列

如何使用Ansible自动在Ubuntu 14.04上安装WordPress

Ansible是一种简单,无代理的自动化基础架构方式。如果您发现自己一遍又一遍地部署WordPress,Ansible可以为您节省大量时间。

22540
来自专栏美奔科技

web站点应用之路_wdcp面板部署篇(一)

熟悉的人都知道,搭建web几乎是最简单的了,一般有两种方式来搭建web站点.一种是自己先安装各类环境,比如php+apache+mysql ,或者是asp.ne...

27850
来自专栏从零学习云计算

openshift/origin学习记录(0)——Ansible安装多节点openshift集群

本节内容是基于Ansible Playbook自动部署openshift集群,之后几节内容会通过一个AllInOne的集群手动添加组件,研究实现的流程。 ...

1K00
来自专栏小程序之家

如何在小程序中实现文件上传下载

在如何实现小程序登录鉴权这篇文章中,我们实现了小程序的wx.request请求操作,除了request之外,小程序还有文件下载wx.downloadFile和文...

14.5K70
来自专栏HTML5学堂

wamp的使用与安装

HTML5学堂:突然发现官网里没有写关于wamp的文章,竟然没有wamp的安装,竟然真的没有wamp(利利碎碎念中),于是乎,来普及一下吧,看看wamp是什么,...

69140

扫码关注云+社区

领取腾讯云代金券