千古八方的博客

  • 程序开发
    • Android
    • Spring Boot
  • 数据私有化
    • NAS
    • 私有云
    • 内网穿透
    • 服务器
  • 留言
  • 搞事
进学
为学无间断,如流水行云,日进而不已也
  1. 首页
  2. 服务器
  3. 正文

PHP 语言,Web容器选Nginx还是Apache

2022年6月14日 182点热度 0人点赞 0条评论
二者简述:

Apache 和 Nginx 的最大不同在于对连接的处理方式不同。

Apache 提供了mpmprefork、mpmworker、mpm_envent这三种模式来处理。

Nginx 则是异步、非阻塞的事件驱动模型。

Apache处理方式:

mpm_prefork:模块生成多个子进程,每个子进程都是单线程的,每个线程处理一个请求。当请求数量大于进程数时,性能就差许多了。如果进程数量足够,用户量小,那又是最好的了。

​

mpm_worker:与prefork不同的是,worker每个子进程创建多个线程,每个请求分配一个线程来处理,线程相对于进程开销更小,  高并发的场景下会比prefork拥有更多的可用线程。相反的如果某个子线程出问题了,也会导致同一个子进程下的线程出问题。

​

mpm_event:与worker相似,区别在于event可以处理长连接(keep-alive),以避免线程被请求长期占用而造成资源浪费,同时也增强了高并发场景下的请求处理能力。前两种方式都存在,处理长连接的问题时,哪怕没有请求线程也会一直被占用的问题。

​

 

Nginx处理方式:

Nginx由多个工作进程组成,每个进程互相独立,每个工作进程是单线程的,由基本的事件收集器、事件分发器、事件处理器,这三部分组成。 事件分发器每发送一个请求,“目标对象”就将其放入一个待处理事件的列表,使用非阻塞I/O方式调用“事件处理器”来处理该请求,又称多路IO复用方法。

​

进程数一般根据CPU核心线程数来配置,查看如下:

​

小结:

无论动态还是静态内容Apache都可以处理,Apache内置了多种动态脚本语言(PHP、Python、Perl等)的处理器,而Nginx需要借助外部处理器才可以处理动态内容。

通过Nginx和Apache二者的工作方式也可以看出,Apache倾向于为每个请求分配一个线程,开销大,但处理计算耗时的动态内容时优势很大。而Nginx则更倾向于大量的请求,请求来了分发给指定的处理者,开销小,尤其大量静态内容的时候更高效。也就是说Apache更适合动态语言的业务处理,Nginx更适合大量请求的分发、负载均衡。

对于Nextcloud来说,官网推荐Apache。不过个人情况不同,有的更适合Nginx,有的更适合Apache。或者二者一起用,具体看个人的服务器的实际情况、以及服务规模而定。

 

标签: linux
最后更新:2022年6月14日

千古八方

物格而后知至,知至而后意诚,意诚而后心正

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

千古八方

物格而后知至,知至而后意诚,意诚而后心正

最新 热点 随机
最新 热点 随机
火狐下远离内容农场的方法! 中国城市生活成本查询 Debian11 系统备份与灾备盘制作 Debian logwatch 自定义配置文件,根据规则忽略掉某些日志内容 Ampache 5.0 报错 The root Ampache folder has changed to ./public socat 正反向传输文件
Springboot从2.1.4升级到2.7.2后,访问静态资源,提示 page not found 自建NAS,是否有必要定时开关机? 兜兜转转,我又回到了博客 Nextcloud 使用occ命令重置管理员密码 使用AutoSSH 建立TCP/IP隧道,实现内网穿透 服务器如何选择Linux发行版系统?
分类
  • Android
  • Linux
  • NAS
  • Spring Boot
  • Windows
  • 内网穿透
  • 回忆
  • 基于NEAT的瞎几把寻思算法笔记
  • 散篇
  • 普通人的致富之路在哪里
  • 服务器
  • 未分类
  • 私有云
标签聚合
Android Widgets 散篇 安全维护 TrueNAS Windows Spring Boot NAS Nextcloud NPS Android系统编译 ubuntu linux 群晖NAS 服务器 内网穿透 Android Utils 我开源的APP 私有云
工具/友链

资源导航 – NAS、私有云存储
在线工具 – MD5、SHA、BASE64、URL编解码
在线工具 – 贷款计算器
在线工具 – IPv4/IPv6地址查询

千古八方 在 B站

千古八方 在 知乎

我的微信小程序:
微信小程序-城市生活成本查询
城市生活成本查询
库房物资流水记账簿
最近评论
Avatar photo
千古八方 发布于 1 个月前(12月28日) 重置命令是Nextcloud提供的,和哪个平台没关系。 如果报错,一般是路径或权限的问题导致的。 ...
Avatar photo
aron 发布于 1 个月前(12月24日) 博主你好 我的nextcloud管理员密码过期了 用了occ命令重置但是报错,能请教下是什么原因...
Avatar photo
千古八方 发布于 2 个月前(12月15日) 贝塞尔这个类在这里 https://gitee.com/aityu/AndroidUtils/blo...
Avatar photo
disco 发布于 2 个月前(12月05日) 有demo链接吗?贝塞尔曲线这个关键类没有写出来~
Avatar photo
HJM 发布于 3 个月前(10月20日) 必须点赞!很有效!

COPYRIGHT © 2022 千古八方的博客. ALL RIGHTS RESERVED.

京ICP备14020471号