大家好,今天来介绍apache与nginx对比的问题,以下是渲大师小编对此问题的归纳和整理,感兴趣的来一起看看吧!
nginx和apache有什么区别我该用哪种
1、在功能方面
Apache是同步多进程模型,一个连接只能对应一个进程,而Nginx 是异步的,多个连接(万级别)可以对应一个进程 。
另外Nginx处理静态文件好,在性能和速度方面要比Apache有优势。而Apache在处理动态文件上要优于Nginx,在rewrite频繁的情况下,大多会选择使用Apache。
2、安全性方面
Apache成立时间要比Nginx早,在安全性方面要更有经验 ,bug代码少,可以比Nginx更专业地处理DDoS等答散锋网络攻击,比较稳定。一般来说,如果需要性能的Web服务器,大多用户会选择Nginx 。如果不需要太多的性能只求稳定,使用Apache还是非常不错的。
3、在灵活性方掘档面
与Nginx使用事件驱动技术来管理客户端请求不同,Apache更倾向于多线程方法,Nginx处理更多客户端的方法是有效的。清晌Apache可以动态加载和卸载模块,而Nginx在模块方面没有那么灵活。但Apache和Nginx都可以部署为单独的Web服务器。
浅谈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来做会多一点。
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 中出现的大部分问题都能在社区和网上找到相应的解决方案。
apache和nginx的区别
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 更高性能。
当然,这只是根据网络IO 模型的原理作的一个假设,真正的应用还是需要实测了再说的。
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吧
本文地址:https://gpu.xuandashi.com/72125.html,转载请说明来源于:渲大师
声明:本站部分内容来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场!