nginx和apache的区别(web前端三大主流框架)

nginx和apache的区别(web前端三大主流框架)

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

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

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有什么区别我该用哪种

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与nginxapache的区别是什么

Tomcat与Nginx、Apache的关系如下图。由配送中心选择Apache、Nginx中的某一辆货车将包裹送给客户。虽然Apache、Nginx两辆车的用途是一样的,仔细区分它们两还是有区别的,比如:货物装载的速度、方式不一样,Apache有水箱可以直接运送活鱼而Nginx没有。

Tomcat有点像装活鱼的特殊包装。经过特殊包装打包的活鱼就可以通过Nginx和Apache运送到用户手中。另外,使用Tomcat包含了一种慢速的配送服务,所以配送中心一般都采用Nginx、Apache等配送。通过上面的比方引申Apache、Nginx、Tomcat的实际用途Apache全称Apache
HTTP
Server,它是Apache软件基金会的一个开放源码的网页伺服服务器软件。

Apache支持模块多,性能稳定。Apache本身是静态解析(静态页面),适合静态的HTML、图片等,但可以通过扩展脚本、模块来支持动态页面等。Apche可以支持PHP、CGI、Perl,但要使用Java就需要Tomcat,Java请求会通过Apache转发给Tomcat处理;

Nginx同样也是一款开源的HTTP

Server,它是由俄罗斯人编写的轻量级HTTP服务。Nginx是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP、POP3、SMTP代理服务器。Nginx本身不支持生成动态页面,很大部分Web服务器使扒缓则用Nginx,主要通过Nginx的反向代理来实现负载均衡器。

Apache、Nginx本质上就是一种运用在HTTP服务器上某种应用程序,它们通过绑定服务器的IP地址并监听某一个TCP端口来接收并处理HTTP请求,这样用户(一般通过IE、Chrome、Firefox等发送请求并显示内容)就能够通过HTTP协议来获取服务器上的网页(HTML+CSS样式)、文档(PDF、txt、rar等)、音频、视频等资源。如下图:

不仅Apache和Nginx,绝大多数编程语言所包含的类库中也可以实现简单的HTTP服务供开发者使用,如:Java HTTP Server、Python SimpleHTTPServer。Apache和Nginx的对比Nginx使用异步非阻塞型事件驱动的方法来处理请求,而Apache则是通过同步阻塞型的方法来处理请求。

Apache接收一个请求后,就会创建一个进程,每个进程内单线程。对于一个负载相对较高的网站来说,256的进程,也就是256个线程。线程处理请求时是同步阻塞模式,会一直等待该请求读取程序文件(IO)(同步),执行业务逻辑,返回给客户端,所有操作完成之春棚后才能处理下一个请求(阻塞)。如果服务器已经达到256的极限,那么接下去的访问就需要排队。这也就是为什么某些服务器负载不高的原因了。

而Ngnix接收一个请求后,不会等待这个请求的文件读取操作完成之后才接收下一个请求,它不会等待这个请求的后续的处理结果。而是会马上循环处理下一个请求(不阻塞)。请求的程序文件执行完成之后,会主动通知该线程,不用你主动去等待或者轮询查看(异步)。

最后返回给客户端。这样做,每个请求过来就不需要等待很长的时间排队,而是马上就能接收,开始进行处理了。等处理完成之后,会主动通知哪拿回调这个线程进行数据返回。

基于上述特性Nginx更轻量级,比Apache占用更少的内存及资源抗并发,Nginx静态处理性能比Apache高3倍以上。在高并发下Nginx能保持低资源低消耗高性能高度模块化的设计。但Apache组件比Nginx多,对PHP的支持比较简单,Apche的Rewrite也比Nginx强大一些。Tomcat用于扩充Apache和Nginx的动态性能从上面我们知道了Apache和Nginx的优势在于静态解析,那么动态解析就会交给其他模块处理,如Tomcat。

Tomcat是由Apache软件基金会旗下Jakarta项目开发的Servlet容器,实现对Servlet和JavaServer Page(jsp)的支持。Tomcat本身也包含了HTTP服务,也可单做独立的Web服务,但用的不多。

Tomcat一共设计了
4
种容器,它们分别为Engine、Host、Context、Wrapper,各个容器组件之间的关系是由大到小,即父子关系,它们之间关系形成一个树状的结构,它们的实现类都实现了
Container
接口。总结如果Apache、Nginx、Tomcat打一局LOL,Apache和Nginx像是冲在最前面的英雄。而Tomcat攻击性能弱,它主要负责打辅助,奶前面的英雄。

Nginx并发性好,CPU、内存占用低。但如果rewrite频繁,那还是选择Apache好一些,Apache在处理动态请求更有优势。

apache和nginx的区别

Apache和nginx处理php文件的方式不同,前者通过libphp5.so这个模块来处理,后搜烂者通过php-fpm这个服务来处理,Nginx处理动铅拆态请求是弱项,一般世激漏动态请求让Apache去做,Nginx只适处理高并发的静态

分享到 :
相关推荐

服务器内存不足如何处理(服务器内存不足如何处理)

服务器内存不足处理的方法:1。关闭一些不必要的程序。避免过多的程序占用必要程序运行的...

服务器经常死机的原因有哪些(服务器经常死机的原因有哪些呢)

服务器经常死机的原因有:1.系统问题。系统文件损坏;2.软件问题。软件漏洞;3.病毒...

使用免费的vps怎么搭建网站

使用免费的vps搭建网站方法:1。打开Internet信息管理器;2。点击本地计算机...

香港云vps主机价格受哪些因素影响(香港云vps主机价格受哪些因素影响呢)

影响香港云vps主机价格的因素有:1。服务商优惠活动。碰到活动时。香港云vps主机的...

发表评论

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