Nginx和Apache的特点与区别

Nginx和Apache的特点与区别一 Nginx 特点 1 轻量级 采用 C 进行编写 同样的 web 服务 会占用更少的内存及资源 2 抗并发 nginx 以 epollandkque 作为开发模型 处理请求是异步非阻塞的 负载能力比 apache 高很多 而 apache 则是阻塞型的 在高并发下 nginx 能保持低资源低消耗高性能 而 apache 在 PHP 处理慢或者前端压力很大的情况下 很容易出现进程数飙升 从而拒绝服务的现象

  一、Nginx特点

  1、轻量级,采用C进行编写,同样的web服务,会占用更少的内存及资源。

  2、抗并发,nginx以epollandkqueue作为开发模型,处理请求是异步非阻塞的,负载能力比apache高很多,而apache则是阻塞型的。在高并发下nginx能保持低资源低消耗高性能,而apache在PHP处理慢或者前端压力很大的情况下,很容易出现进程数飙升,从而拒绝服务的现象。 

  3、nginx在开启时,会生成一个master进程,然后,master进程会fork多个worker子进程,最后每个用户的请求由worker的子线程处理。 

  4、可以配置nginx的upstream实现nginx的反向代理。 

  5、nginx作为负载均衡服务器,支持7层负载均衡。 

  6、nginx处理静态文件好,静态处理性能比apache高三倍以上。

  7、支持高并发连接,每秒最多的并发连接请求理论可以达到50000个。 

  8、nginx配置简洁,正则配置让很多事情变得简单,而且改完配置能使用-t测试配置有没有问题,apache配置复杂,重启的时候发现配置出错了,会很崩溃。 

  9、用线程处理用户请求,而线程是共享内存的,只需要开启少量进程,多个线程就可以共享进程的内存,占用内存小。 

  10、一个进程死掉时,会影响到多个用户的使用,稳定性差。

  11、nginx的设计高度模块化,编写模块相对简单。

  12、nginx本身就是一个反向代理服务器,而且可以作为非常优秀的邮件代理服务器。

  13、启动特别容易,并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动,还能够不间断服务的情况下进行软件版本的升级。

  14、社区活跃,各种高性能模块出品迅速。

  二、Apache特点 

  1、select同步阻塞。

  2、一个连接对应一个进程。

  3、用进程处理用户请求,用MPM(多处理模块)来绑定到网络端口上,接受请求,调度子进程处理请求。

  4、当用户请求过多时,开启的进程较多,占用内存大,每秒最多的并发连接请求最多不超过3000个。

  5、一个进程死掉时,不会影响其他的用户

  6、apache的rewrite比nginx强大,在rewrite频繁的情况下,用apache。 

  7、apache发展到现在,模块超多,基本想到的都可以找到。 

  8、apache更为成熟,少bug,nginx的bug相对较多。 

  9、apache超稳定。 

  10、apache对PHP支持比较简单,nginx需要配合其他后端用。 

  11、apache在处理动态请求有优势,一般动态请求要apache去做,nginx适合静态和反向。

  12、apache仍然是目前的主流,拥有丰富的特性,成熟的技术和开发社区。

  两者最核心的区别在于apache是同步多进程模型,一个连接对应一个进程,而nginx是异步的,多个连接(万级别)可以对应一个进程。一般来说,需要性能的web服务,用nginx。如果不需要性能只求稳定,更考虑apache,apache的各种功能模块实现比nginx好,例如ssl的模块就比nginx好,可配置项多。epoll(freebsd上是kqueue)网络IO模型是nginx处理性能高的根本理由,但并不是所有的情况下都是epoll大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache的select模型或许比epoll更高性能。当然,这只是根据网络IO模型的原理作的一个假设,真正的应用还是需要实测。更为通用的方案是,前端nginx抗并发,后端apache集群,配合起来会更好。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217612.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 上午9:10
下一篇 2026年3月18日 上午9:11


相关推荐

  • spss相关系数及其检验_等级相关系数法检验

    spss相关系数及其检验_等级相关系数法检验这里写目录标题SPSS的异方差检验(等级相关系数检验法)数据来源普通最小二乘法求回归方程功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML图表FLowchart流程图导…

    2025年8月2日
    7
  • 初步了解印度数学速算法

    初步了解印度数学速算法印度也是IT发达的国家;初步了解,印度的数学自己有一套东西,有的和我们从小学的有很大区别;它的速算法,有的计算看一眼就能给出答案;这东西练一下也许能帮助减低脑力劳动强度;大家有兴趣自己研究;先初步了解一下;下图,一看就给出答案;它的算法是,14加3得17,扩大10倍170,再加上3*4的结果12,最后结果182;对于十位上的数字相同,两位数乘两位数的算法:如:15*16(1)15+6=21(2)21*10=210(3)5*6=30(4)210+30=240…

    2022年5月23日
    44
  • Java中this关键字详解

    Java中this关键字详解一、this关键字主要有三个应用: (1)this调用本类中的属性,也就是类中的成员变量; (2)this调用本类中的其他方法; (3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。PublicClassStudent{Stringname;//定义一个成员变量nameprivatevoidSetName(Stringname){

    2022年6月17日
    35
  • mysql的mediumtext类型字段在java如何获取

    mysql的mediumtext类型字段在java如何获取数据库:PO:重点是autoResultMap=true和@TableField(typeHandler=FastjsonTypeHandler.class)@Data@EqualsAndHashCode(callSuper=false)@TableName(value=”xxx”,autoResultMap=true)@ApiModel(“一分钱充值用户配置表”)publicclassxxximplementsSerializable{@Tabl

    2022年5月18日
    57
  • vim报错解决方法小结

    vim报错解决方法小结

    2021年7月1日
    162
  • Jupyter 快捷键总结

    Jupyter 快捷键总结Jupyter 快捷键总结 JupyterNoteb 有两种键盘输入模式 编辑模式 允许你往单元中键入代码或文本 这时的单元框线是绿色的 命令模式 键盘输入运行程序命令 这时的单元框线是灰色 命令模式 按键 Esc 开启 快捷键 Enter 转入编辑模式 Shift Enter 运行本单元 选中下个单元 Ctrl Enter 运行本单元 Alt Enter 运行本单元 在其下插入新单元 Y 单元转入代码状态 M 单元转入 markdown 状态 R 单元转入 r

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号