WEB服务器如何选择 Apache or Nginx?

WEB服务器如何选择 Apache or Nginx?,第1张

WEB服务器如何选择ApacheorNginx?

Web服务器是间接危害网站功能的核心要素,也是每个站在选择较少网络运行状态时必须思考的测试结果。目前Web服务器销售市场上的素材很少,支流战的象征就是Apache、Nginx和略硬的IIS。本文的总体目标是在Apache与Nginx终止比较的全过程之后,帮助广大客户选择自己的Web服务器。

1.介绍

阿帕奇:

Apache成立于1995年,从1999年开始,Apache硬件配置慈善基金会团体的发展就终止了。Apache灵敏、高效、拥有丰富的扩展控制模块和令人愉悦的社区支持,已经成为当今世界较为主流的开源系统的完全免费硬件配置的Web服务器。

Nginx:

Nginx是一个完全免费的开源系统Web服务器,由乌克兰硬件工程师伊戈尔·塞索耶夫编写。自2004年发布以来,nginx致力于以下功能,收敛和低运行内存利用率。而且具有承载平衡、缓存文件、把握面网带宽、采取各种应用法式风格等特点,这些都促使其逐渐受到广大客户的喜爱。

以上是2017年11月升级后的web服务器市场份额对比图:

信息开始:https://news.netcraft.com/archives/2017/11/21/11-2017-weB-server-survey.html

2.对比

虽然Apache和Nginx互不相同,但它们的角色总体目标是矛盾的。简单的方法是加强客户的恳求,然后处理恳求,并首先将处理结果返回给客户。

01.连接处理

ApacheNginx和ApacheNginx最大的区别就是处理邻居的方式。Apache提供了一系列不同的处理控制模块。通过整个流程,这些各种处置控制模块申请控制管理系统的资产,处理历史战争线程池的终止申请,掌握客户的处置请求。

Apache提供了三种处置控制模块:mpm_prefork、mpm_worker和mpm_envent。我们来做一个简明的对比。

Mpm_prefork:控制模块生成几个子流程,每个子流程并行处理,每个流程连接一个请求,等等。所以,服务器的功能,如果需要很多年的恳求,才是最强的。

Mpm_worker:以prefork为差。worker中的子进程是线程同步的,每个进程申请一个客户邻接。如果线程数超过历史数,则意味着新邻居可以立即获得一个空空闲进程,而不是等待历史空空闲。

M_event:这个控制模块类似于worker,但不同的是,事件可以用keep-alive的方式处理,避免进程被长时间央求占用,导致资产浪费。另外,在接管和被接管的情况下只能通过诉请的方式处理。

以Apache作为区分,Nginx是一个进程同步的、非阻塞的、无序的驱动。Nginx的进程是并行处理的,每个进程都可以处理大量的客户请求。上面讲的是Nginx。原图:

图片来源:http://www.aosabook.org/en/nginx.html

2.静态内容的处理。

无论是静态借用还是静态内容,Apache都可以处理掉。Apache具有各种静态桌面语言(包括PHP、Python、Perl)的嵌入式分析和实现功能,不依赖内部处理器。

毫无疑问,对静态内容处置的恐惧是Nginx的痛脸。其实Nginx处理静态内容的服从性是上不来下不来的,要看内部的处理器。所以,如果你的站有很多静态函数,Apache的指示可能更合你的意。另外,虽然Apache类比Nginx的静态内容处理可能不安全,但是它的静态内容处理是非常无效的。

3.摘要

凭借Apache丰富的控制模块组件,不算强,bug少,静态内容处置强。

Nginx量级重,资产少,负载均衡,收集处理能力强,静态内容处理效率低。

有现有的基本原理,Apache和Nginx作为WEB服务是不一样的,但是我个人认为其实是不存在的,未来具体是谁取代谁。核心区已经告诉客户要真正想清楚自己的应用场景,根据自己的需求和需要反复考虑选择哪种材质,适合自己的才是最好的。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/768586.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-02
下一篇 2022-05-02

发表评论

登录后才能评论

评论列表(0条)

保存