浅谈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来做会多一点。
iis, apache, tomcat三者的共同点是都可以直接用作Web服务器,就是你看www网页就是把网页放到服务器上的。
区别:
iis和apache二者只能作web服务器(iis是m$出品的闭源产品,apache是apacheorg出品的开源产品,性能好一点),而tomcat除过做web服务器外,还可以作应用服务器。
所谓应用服务器(App Server),这里主要是为Java EE的Web应用提供一个运行的容器。其实细分还可以分成按是否根据Java EE规范的版本支持看其支持到什么程度, 如Java EE 15 App服务器,Java EE 6 App服务器等),严格说来由于Tomcat本身不支持EJB,多数情况下它是作为运行Servlet/JSP的容器。
最后,也可以把Tomcat做成只有应用服务器的功能,与iis或apache进行连接,因为静态网页的解析后者会快一些。 明白了吧。
一 :
apache支持静态页,tomcat支持动态的,比如servlet等。
一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。
apache可以支持php\cgi\perl,但是要使用java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat处理。
apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。
这两个有以下几点可以比较的:
1、两者都是apache组织开发的
2、两者都有HTTP服务的功能
3、两者都是免费的
不同点:
Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等)
Tomcat是Apache组织在符合J2EE的JSP、Servlet标准下开发的一个JSP服务器 。
二:
APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等动态网页的就不行 。
如果要在APACHE环境下运行jsp 的话就需要一个解释器来执行jsp网页 而这个jsp解释器就是TOMCAT, 为什么还要JDK呢?因为jsp需要连接数据库的话。
就要jdk来提供连接数据库的驱程,所以要运行jsp的web服务器平台就需要APACHE+TOMCAT+JDK
整合的好处是:
如果客户端请求的是静态页面,则只需要Apache服务器响应请求 如果客户端请求动态页面,则是Tomcat服务器响应请求 。
因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销。
三:
apache:侧重于http server
tomcat:侧重于servlet引擎,如果以standalone方式运行,功能上与apache等效 , 支持JSP,但对静态网页不太理想;
apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。 换句话说,apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上。
Apache服务器也就是www服务器,由于www采用HTTP协议所以又称为HTTP服务器,用于静态页面的解析;而Tomcat服务器是应用(Java)服务器,可以说是一个Servlet容器,可以认为是Apache的扩展,本身包含了一个HTTP服务器。但是可以独立于Apache运行,主要用于动态页面提供服务,可以将JSP编译成对应的Servlet,所以是web应用服务器。
tomcat的意思是公猫;也是一款免费开源的Servlet容器。
Tomacat是由Apache推出的一款免费开源的Servlet容器,可实现JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的一款环境。它是apache软件基金会的jakarta项目中的一个核心项目,因为tomcat技术先进性能稳定和监督易用性已成为最为广泛的jsp服务器。
Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,在处理静态Html上的能力略逊一筹。
双语例句
1、The old lady lives alone,only one Tomcat with her life。
老太太一生孤独,只有一只雄猫与她相依为命。
2、Finally the application of Tomcat based on Web Service deployment。
最后应用Tomcat实现WEB Service部署。
3、Using Tomcat server as web server which has advanced technology,good performance。
后台用Tomcat服务器作为Web服务器,技术先进,性能稳定。
4、Construction of Remote Flexible Control Server Using Tomcat+Servlet。
用Tomcat+Servlet构建远程柔性控制服务器。
5、As noted earlier,we use Tomcat as our example application。
正如前面提到的,我们使用Tomcat作为服务器端应用程序。
1 Apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展。
2 Apache和Tomcat都可以做为独立的web服务器来运行,但是Apache不能解释java程序(jsp,serverlet)。
3 Apache是普通服务器,本身只支持html即普通网页。不过可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)
4 两者都是一种容器,只不过发布的东西不同:Apache是html容器,功能像IIS一样;Tomcat是jsp/servlet容器,用于发布jsp及java的,类似的有IBM的webshere、EBA的Weblogic,sun的JRun等等。
5 Apache和Tomcat是独立的,在通一台服务器上可以集成。
打个比方:Apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),Tomcat就是一个桶(装像Java这样的水),而这个桶也可以不放在卡车上。
Apache只支持静态网页,但像asp,php,cgi,jsp等动态网页就需要Tomcat来处理。
Apache和Tomcat整合使用:如果客户端请求的是静态页面,则只需要Apache服务器响应请求;如果客户端请求动态页面,则是Tomcat服务器响应请求;因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销 。
Apache是世界使用排名第一的Web服务器。它可以运行在几乎所有广泛使用的计算机平台上。
Apache 源于 NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。Apache对Linux的支持相当完美。
Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazoncom、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、 Windows、Linux系统平台上)以及它的可移植性等方面。
Apache的诞生极富有戏剧性。当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。
Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。
Tomcat是Java Servlet 22和JavaServer Pages 11技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是完全重写的Servlet API 22和JSP 11兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。随着Catalina Servlet引擎的出现,Tomcat第四版号的性能得到提升,使得它成为一个值得考虑的Servlet/JSP容器,因此目前许多WEB服务器都是采用Tomcat。
JSP=Java Server Pages (Java服务器网页)
ASP=Active Server Pages (活动服务器网页)
CGI=Common Gateway Interface (通用网关接口)
J2EE=Java 2 Platform, Enterprise Edition (Java2平台,企业版)
XML=eXtensible Markup Language (扩展标记语言)
IIS=Internet Information Server (互联网信息服务器)
0条评论