apache和nginx性能差距(web前端三大主流框架)

apache和nginx性能差距(web前端三大主流框架)

扫码添加渲大师小管家,免费领取渲染插件、素材、模型、教程合集大礼包!

大家好,今天来介绍apache和nginx性能差距(nginx和apache的区别)的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!

nginx和apache的区别

具体区别如下。
二者最核心的区别在于空信模apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多坦亏个连接(万级别)可以对应一个进程。nginx.nginx的负载能力比apache高很多。最新的服务器也改用nginx了。
而且nginx改完配置能-t测试一下配置有没有问题。apache重启的时候发现配置斗缓出错了,会很崩溃,改的时候都会非常小心翼翼现在看有好多集群站,前端nginx抗并发,后端apache集群,nginx处理动态请求是鸡肋,一般动态请求要apache去做,nginx只适合静态和反向。从经验来看,nginx是很不错的前端服务器,负载性能很好,nginx,用webbench模拟10000个静态文件请求毫不吃力。

03《Nginx 入门教程》Nginx 与 Apache 对比

如果说 Nginx 是新生代霸主的话,那么 Apache 就是当之无愧的老霸主。至少在前几年 Nginx 在 Web 服务器领域只是占据老二的位置。

但是随着互联网的发展,越来越多的人和企业开始转向 Nginx 的怀抱,从而使得 Nginx 的市场占有率逐年上升,直到牢牢占据第一的宝座。那么这一对新老技术的代表之间,究竟有着怎样的差别呢?

Nginx 的进程模型前面已经提到过,它是通过 异步的、非阻塞的、事件驱动的方式实现的。 Nginx 的工作进程是多进程的,每个 Worker 进程可以异步处理大量的用户请求,因此在 高并发下 Nginx 能保持低资源低消耗高性能。

Apache 有一共有三种稳定的 MPM(Multi-Processing Module,多进程处理模块)模式 ,其中最常用和默认的是 prefork 模式。prefork 是一个非线程型的、预派生的 MPM,使用多个进程,每个进程在某个确定的时间只单独处理一个连接,效率高,但内存使用比较大。一个进程相对占用更多的系统资源,消耗更多的内存。

因此,Apache 并不擅长处理高并发请求。 在这种场景下,它会将请求放进队列中,一直等到有可用进程,请求才会被处理。因此 Apache 是阻塞型的。当用户请求过多时,开启的进程较多,占用内存大,每秒最多的并发连接请求 最多不超过 3000 个,而 Nginx 则可以每秒并发连接超过 10 万请求。

Nginx 的配置简洁,且支持正则表达式,使用起来非常方便。在启动或者热加载时都会优先检查配置文件是否存在语法错误。Apache 的配置则略显复杂,而且只有启动时候才知道配置是否存在问题,如果是重启出错则会导致服务中断,进而影响业务。

根据前面的进程模型对比,我们可以看纳敬出: Nginx 是轻量级、支持高并发、海量请求的 web 服务器,而 Apache 是重量级、不支持高并发的 web 服务器

Nginx 在处理静态文件方面的性能要远超于Apache,而且支持压缩、缓存等配置。 Nginx 最擅长的是静态资源访问和反向代理。其反向代理模块也同时支持 4 层协议( 主要是 TCP 协议/ UDP 协议 )和七层协议( HTTP 协议、WebSocket 协议、WSGI 协议 等)的反向代理。同时也可以作为负载均衡服务器,也支持 4 层和 7 层的负载均衡,这些优势是 Apache 无法比拟的。但是 Apache 在处理动态请求方面有较大优势,比如 rewrite(对 url 重写)功能。如果网站使用 rewrite 频繁的情况下,建议用 Apache。

此御咐外,根据 Nginx 和 Apache 的进程模型,可以看到,Apache 一个进程对应一个连接请求,而 Nginx 的一个 worker 进程可能对应很多个连接请求,这样如果 Nginx 的一个进程死掉,会影响比较多的用户请求, 所以 Apache 相比 Nginx 会更稳定一些。

Nginx 安装和启动都特别容易, 并且几乎镇茄纯可以做到 7*24 不间断运行 ,即使运行数个月也不需要重新启动,支持热部署,实现不间断服务的情况下进行软件版本的升级与版本的回退。而 Apache 在修改配置后,只能手工重启服务或者使用第三方插件实现热部署,期间服务会出现短暂的不可用。

Apache 出现时间比较早,仍然是主流的 Web 服务器,拥有丰富的特性,成熟的技术和开发社区,还有数不甚数的第三方插件。 而 Nginx 作为后起之秀,社区同样非常活跃,版本迭代更新快,各种高性能的第三方模块层出不穷 。使用 Apache 和 Nginx 中出现的大部分问题都能在社区和网上找到相应的解决方案。

浅谈tomcat 、apache、 nginx的区别及优缺点

本文主要介绍tomcat 、apache、 nginx的定义、区别及优缺点。

1. Apache

Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛雹悉烂使用的计算机平台上。其属于应用服务器。Apache支持支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。

(Apche可以支持PHPcgiperl,但是要使用Java的话,你需要Tomcat在Apache后台支撑,将Java请求由Apache转发给Tomcat处理。) 缺点:配置相对复杂,自身不支持动态页面。

2. Tomcat:

Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。

3. Nginx

Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服源漏务器,同时也是一个IMAP/POP3/SMTP 代理服务器。

1. Apache与Tomcat的比较

相同点:

 两者都是Apache组织开发的  两者都有HTTP服务的功能  两者都是免费的 不同点:

 Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等),而Tomcat是Apache组织在符合Java EE的JSP、Servlet标准下开发的一个JSP服务器.

 Apache是一个Web服务器环境程序,启用他可以作为Web服务器使用,不过只支持静态网页如(ASP,PHP,CGI,JSP)等动态网页的就不行。如果要在Apache环境下运行JSP的话就需要一个解释器来执行JSP网页,而这个JSP解释器就是Tomcat。

 Apache:侧重于HTTPServer ,Tomcat:侧重于Servlet引擎,如果以Standalone方式运行,功能上与Apache等效,支持JSP,但对静态网页不太理想;

 Apache是Web服务器,Tomcat是应用(Java)服务器,它只是一个Servlet(JSP也翻译成Servlet)容器,可以认为是Apache的扩展,但是可以独立于Apache运行。

实际使用中Apache与Tomcat常常是整合使用:

 如果客户端请求的是静态页面,则只需要Apache服务器响应请求。  如果客户端请求动态页面,则是Tomcat服务器响应请求。  因为JSP是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。

可以理解Tomcat为Apache的一种扩展。

2. Nginx与Apache比较

1) nginx相对于apache的优点

 轻量级,同样起web 服务,比apache占用更少的内存及资源  抗并发,nginx 处理请求是异步非阻塞的,而apache 则是 阻塞型 的,在高并发下nginx 能保持低资源低消耗高性能  高度模块化的设计,编写模块相对简单  提供负载均衡

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

2) apache 相对于nginx 的优点

 apache的 rewrite 比nginx 的强大 ;

 支持动态页面;

 支持的模块多,基本涵盖所有应用;

 性能稳定,而nginx相对bug较多。

3) 两者优缺点比较

 Nginx 配置简洁, Apache 复杂 ;

 Nginx 静态处理性能比 Apache 高 3倍以上 ;

 Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用;  Apache 的组件比 Nginx 多 ;

 apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别陆明)可以对应一个进程;

 nginx处理静态文件好,耗费内存少;

 动态请求由apache去做,nginx只适合静态和反向;

 Nginx适合做前端服务器,负载性能很好;

 Nginx本身就是一个反向代理服务器 ,且支持负载均衡

3. 总结

 Nginx优点:负载均衡、反向代理、处理静态文件优势。nginx处理静态请求的速度高于apache;

 Apache优点:相对于Tomcat服务器来说处理静态文件是它的优势,速度快。Apache是静态解析,适合静态HTML、图片等。

 Tomcat:动态解析容器,处理动态请求,是编译JSP\Servlet的容器,Nginx有动态分离机制,静态请求直接就可以通过Nginx处理,动态请求才转发请求到后台交由Tomcat进行处理。

Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果rewrite频繁,那还是Apache较适合。

真的的日常工作中,一般的项目还是用nginx+tomcat来做会多一点。

nginx和apache的区别

作者:fiisio
链接:http://www.zhihu.com/question/19571087/answer/58671320
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  1、nginx相对于apache的优点:
轻量级,同样起web 服务,比apache占用更少的内存及资源抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能高度模块化的设计,编写模块相对简单社区活跃,各种高性能模块出品迅速啊
apache 相对于nginx 的优点:
rewrite ,比nginx 的rewrite 强大,动态页面,模块超多,基本想到的都可以找到,少bug ,nginx 的bug 相对较多,超稳定
存在就是理由,一般来说,需要性能的web 服务,用nginx 。如果不需要性能只求稳定,那就咐瞎apache 吧。后者的各种功能模块实现得比前者,例如ssl 的模块就比前者好,可配置项多。这里要注意一点,epoll(freebsd 上是 kqueue )网络IO 模型是nginx 处理性能高的根本理由,但并不是所有的情况下都是epoll 大获全胜的,如果本身提供静态服务的就只有寥寥几个文件,apache 的select 模型或许比epoll 更高性能。
2、作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。在高连接并发的情况下,Nginx是Apache服务器不错的替代品: Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一. 能够支持高达 50,000 个并发连接数的响应, 感谢Nginx为我们选择了 epoll and kqueue 作为开发模型.
Nginx作为负载均衡服务器: Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务, 也可以支持作为 HTTP代理 服务器对外进行服务. Nginx采用C进行编写, 不论是系统资源开销还是CPU使用效率都比 Perlbal 要好很多.
作为邮件代理服务器: Nginx 同时也是一个非常优秀的邮件代理服务器(最早开发这个产品的目的之一也是作为邮件代理服务器), Last.fm 描述了成功并且美妙的使用经验.
Nginx 是一个安装非常的简单 , 配置文件非常简洁(还能够支持perl语法), Bugs 非常少的服务器: Nginx 启动特别容易, 并且几乎可以做到7*24不间断运行,即使运行数个月也不需要重新启动. 你还能够不间断服务的情况下进行软件版本的升级 .
3、Nginx 配置简洁, Apache 复杂判颂
Nginx 静态处理性能比 Apache 高 3倍以上
Apache 对 PHP 支持比较简单,Nginx 需要配合其他后端用
Apache 的组件比 Nginx 多
现在 Nginx 才是 Web 服务器的首选
4、最核心的区别在于apache是同步多进程模型,一个连接对应一个进程;nginx是异步的,多个连接(万级别)衡冲空可以对应一个进程
5、nginx处理静态文件好,耗费内存少.但无疑apache仍然是目前的主流,有很多丰富的特性.所以还需要搭配着来.当然如果能确定nginx就适合需求,那么使用nginx会是更经济的方式.
apache有先天不支持多核心处理负载鸡肋的缺点,建议使用nginx做前端,後端用apache。大型网站建议用nginx自代的集群功能
6、nginx的负载能力比apache高很多。最新的服务器也改用nginx了。而且nginx改完配置能-t测试一下配置有没有问题,apache重启的时候发现配置出错了,会很崩溃,改的时候都会非常小心翼翼现在看有好多集群站,前端nginx抗并发,后端apache集群,配合的也不错。
7、nginx处理动态请求是鸡肋,一般动态请求要apache去做,nginx只适合静态和反向。
8、nginx是很不错的前端服务器,负载性能很好,在老奔上运行nginx,用webbench模拟10000个静态文件请求毫不吃力。apache对php等语言的支持很好,此外apache有强大的支持网路,发展时间相对nginx更久,
9、Nginx优于apache的主要两点:1.Nginx本身就是一个反向代理服务器 2.Nginx支持7层负载均衡;其他的当然,Nginx可能会比apache支持更高的并发,但是根据NetCraft的统计,2011年4月的统计数据,Apache依然占有62.71%,而Nginx是7.35%,因此总得来说,Aapche依然是大部分公司的首先,因为其成熟的技术和开发社区已经也是非常不错的性能。
10、你对web server的需求决定你的选择。大部分情况下nginx都优于APACHE,比如说静态文件处理、PHP-CGI的支持、反向代理功能、前端Cache、维持连接等等。在Apache+PHP(prefork)模式下,如果PHP处理慢或者前端压力很大的情况下,很容易出现Apache进程数飙升,从而拒绝服务的现象。
11、可以看一下nginx lua模块:https://github.com/chaoslaw...apache比nginx多的模块,可直接用lua实现apache是最流行的,why?大多数人懒得更新到nginx或者学新事物
12、对于nginx,我喜欢它配置文件写的很简洁,正则配置让很多事情变得简单运行效率高,占用资源少,代理功能强大,很适合做前端响应服务器
13、Apache在处理动态有优势,Nginx并发性比较好,CPU内存占用低,如果rewrite频繁,那还是Apache吧

为什么 Nginx 的性能要比 Apache 高很多

为什么Nginx的性能要比Apache高很多? 这得益于Nginx使用了最新的epoll(Linux 2.6内核)和kqueue(freebsd)网络I/O模型,而Apache则使用的是传统的select模型。
目前Linux下能够承受高并发访问的Squid、Memcached都采用的是epoll网络I/O模型。
处理大量的连接的读写,Apache所采用的select网络I/O模型非常低效。
下面用一个比喻来解析Apache采用的select模型和Nginx采用的epoll模型进行之间的区别:
假设你在大学读书,游余喊住的宿舍楼有很多间房间,你的朋友要来找你。
select版宿管大妈就会带着你的朋友挨个房间去找,直到找到你为止。
而epoll版宿管大妈会先记下每位同学的房间号,
你的朋友来时,只需告诉你的朋友你住在哪个房间即可,不用亲自带着你的朋友毁凳满大楼神野找人。
如果来了10000个人,都要找自己住这栋楼的同学时,select版和epoll版宿管大妈,谁的效率更高,不言自明。
同理,在高并发服务器中,轮询I/O是最耗时间的操作之一,select和epoll的性能谁的性能更高,同样十分明了。

分享到 :
相关推荐

虚拟主机和vps主机哪个更便宜(虚拟主机和vps主机哪个更便宜)

虚拟主机和vps主机比更便宜的是:虚拟主机要比vps主机便宜。vps主机像独立服务器...

云虚拟主机怎么设置404步骤指南

云虚拟主机怎么设置404步骤指南。客户在网上时。很有可能会在电脑浏览器里边键入错误的...

raid10允许坏几块硬盘(哪个raid技术允许坏两块硬盘)

1、raid10允许坏几块硬盘RAID10,也称为RAID1+0或镜像条带化,是[&...

cx域名什么价格 cx域名哪里购买(cx域名怎么样)

.cx原为圣诞岛(属澳大利亚在印度洋的海外领地)域名。后已延伸为全球性国际顶级域名。...

发表评论

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