apache和tomcat有什么不同,为什么要整合apache 和tomcat?

apache和tomcat有什么不同,为什么要整合apache 和tomcat?,第1张

apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展。

apache和tomcat都可以做为独立的web服务器来运行。但是apache不能解释java程序(jsp,serverlet)

Apache是普通服务器,本身只支持html即普通网页。不过可以通过插件支持PHP,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)

两者都是一种容器,只不过发布的东西不同。apache是html容器,功能像IIS一样,tomcat是jsp/servlet容器,用于发布JSP及JAVA的,类似的有IBM的webshere、EBA的Weblogic,sun的JRun等

apache和tomcat是独立的,在通一台服务器上可以集成。

打个比方:apache是一辆卡车,上面可以装一些东西如html等。但是不能装水,要装水必须要有容器(桶),tomcat就是一个桶(装像JAVA这样的水),而这个桶也可以不放在卡车上。

扩展资料:

Apache是普通服务器,本身只支持html即普通网页。不过可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)。Apache只支持静态网页,但像php,cgi,jsp等动态网页就需要Tomcat来处理。

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。

但是,不能将 Tomcat 和 Apache Web 服务器混淆,Apache Web Server 是一个用 C 语言实现的 HTTP web server;这两个 HTTP web server 不是捆绑在一起的。Apache Tomcat 包含了一个配置管理工具,也可以通过编辑 XML 格式的配置文件来进行配置。Apache,nginx,tomcat并称为网页服务三剑客,可见其应用度之广泛。

参考资料:

apache tomcat

Apache是世界使用排名第一的Web服务器。它可以运行在几乎所有广泛使用的计算机平台上。

Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。

本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对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。

Apache服务器拥有以下特性:

支持最新的HTTP/11通信协议

拥有简单而强有力的基于文件的配置过程

支持通用网关接口

支持基于IP和基于域名的虚拟主机

支持多种方式的HTTP认证

集成Perl处理模块

集成代理服务器模块

支持实时监视服务器状态和定制服务器日志

支持服务器端包含指令(SSI)

支持安全Socket层(SSL)

提供用户会话过程的跟踪

支持FastCGI

通过第三方模块可以支持Java Servlets

如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择

Apache与IIS是两种最受欢迎的web服务器软件。

Apache通常在Unix或Linux操作系统上运行(也可以在windowsXP系统运行);

IIS是与Microsoft windows的部分版本捆绑在一起的。

这两种服务器软件安装在本机上的主要作用:

一、IIS的重要特性是支持ASP。IIS 30版本以后引入了ASP,可以很容易的张贴动态内容和开发基于Web的应用程序。对于诸如VBScript,JScript开发软件,或者由Visual Basic,Java,Visual C++开发系统,以及现有的CGI和WinCGI脚本开发的应用程序,IIS都提供强大的本地支持。

通俗的讲,就是你在你的主机上安装了IISWeb服务器软件后,你就可以在你的电脑上安装运行一些IIS支持的脚本语言。比如说,可以在你电脑上安装运行ASP语言的网站、FTP服务器或者其他一些IIS支持的脚本程序。

二、Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。

apache的主要属性:

1,支持http11标准

2支持多种脚本语言如perl php jsp等

3支持多种用户认证机制,如htaccess文件,mysql数据库,openldap目录等。

4支持虚拟主机

5支持访问控制。

6支持重定向和重写规则

7支持ssl。

以上是Apache的理论属性。

通俗的讲,你的电脑上如果安装了Apache服务器软件后,你就可以在你的电脑上安装运行PHP脚本语言编写的网站程序或其他Apache支持的脚本程序。

举例说,如果我想在主机上安装测试一个PHP语言的网站,我就必须安装Apache服务器软件,让我的电脑支持PHP语言,然后,我才能顺利的搭建起PHP环境,否则,我的电脑就不支持PHP脚本语言。

啰嗦半天,不知讲清楚没有⊙﹏⊙b汗

本文主要介绍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来做会多一点。

你可以通过以下三种方法安装Apache服务器。

  1.如果你安装的Linux版本中带用Apache的话,就在选择所要安装的服务

器的时候,将httpd这个服务选上,Linux安装程序将自动完成Apache的安装工

作,并做好基本的配置。

  2.使用可执行文件软件包,这比较适合那些对编译工作不是太熟悉的初级

用户,因为它相对比较简单。

  下载软件包apache_124etargz

  tar

xvzf

apache_124etargz

  这就完成了安装工作,简单吧!

  如果你使用的是RedHat

Linux的话,你也可以下载apache_124rpm软件

安装包,然后使用rpm

-ivh

  apache_124rpm命令安装。

  3.如果你想把Apache服务器充分利用起来的话,就一定要自己编译

Apache定制其功能。

  Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML、PHP、JSP、Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置。

  Apache是web服务器(静态解析,如HTML),tomcat是java应用服务器(动态解析,如JSP、PHP)

  Tomcat只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行

  两者从以下几点可以比较的:

  1、两者都是apache组织开发的

  2、两者都有HTTP服务的功能

  3、两者都是开源免费的

  联系

  1)Apache是普通服务器,本身只支持html即普通网页,可以通过插件支持php,还可以与Tomcat连通(Apache单向连接Tomcat,就是说通过Apache可以访问Tomcat资源,反之不然)。

  2)Apache只支持静态网页,但像asp、jsp、php、cgi等动态网页就需要Tomcat来处理。

  3)Apache和Tomcat整合使用:

  如果客户端请求的是静态页面,则只需要Apache服务器响应请求;

  如果客户端请求动态页面,则是Tomcat服务器响应请求,将解析的JSP等网页代码解析后回传给Apache服务器,再经Apache返回给浏览器端。

  这是因为jsp是服务器端解释代码的,Tomcat只做动态代码解析,Apache回传解析好的静态代码,Apache+Tomcat这样整合就可以减少Tomcat的服务开销。

  4)Apache和Tomcat是独立的,在同一台服务器上可以集成。

  区别

  Apache是有C语言实现的,支持各种特性和模块从而来扩展核心功能;Tomcat是Java编写的,更好的支持Servlet和JSP。

  1、Apache是Web服务器,Web服务器传送(serves)页面使浏览器可以浏览,Web服务器专门处理HTTP请求(request),但是应用程序服务器是通过很多协议来为应用程序提供 (serves)商业逻辑(business logic)。

  Tomcat是运行在Apache上的应用服务器,应用程序服务器提供的是客户端应用程序可以调用(call)的方法 (methods)。它只是一个servlet(jsp也翻译成servlet)容器,可以认为是Apache的扩展,但是可以独立于apache运行。

  2、Apache是普通服务器,本身只支持html静态普通网页。不过可以通过插件支持PHP,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源,反之不然),Tomcat是jsp/servlet容器,同时也支持HTML、JSP、ASP、PHP、CGI等,其中CGI需要一些手动调试,不过很容易的。

  3、Apache侧重于http server,Tomcat侧重于servlet引擎,如果以standalone方式运行,功能上Tomcat与apache等效支持JSP,但对静态网页不太理想。

  4、Apache可以运行一年不重启,稳定性非常好,而Tomcat则不见得。

  5、首选web服务器是Apache,但Apache解析不了的jsp、servlet才用tomcat。

  6、Apache是很最开始的页面解析服务,tomcat是后研发出来的,从本质上来说tomcat的功能完全可以替代Apache,但Apache毕竟是tomcat的前辈级人物,并且市场上也有不少人还在用Apache,所以Apache还会继续存在,不会被取代,apache不能解析java的东西,但解析html速度快。

  两者例子:

  Apache是一辆车,上面可以装一些东西如html等,但是不能装水,要装水必须要有容器(桶),而这个桶也可以不放在卡车上,那这个桶就是TOMCAT。

  两者整合:

  Apache是一个web服务器环境程序,启用他可以作为web服务器使用不过只支持静态网页,不支持动态网页,如asp、jsp、php、cgi

  如果要在Apache环境下运行jsp就需要一个解释器来执行jsp网页,而这个jsp解释器就是Tomcat

  那为什么还要JDK呢?因为jsp需要连接数据库的话就要jdk来提供连接数据库的驱程,所以要运行jsp的web服务器平台就需要APACHE+TOMCAT+JDK

  整合的好处:

  如果客户端请求的是静态页面,则只需要Apache服务器响应请求

  如果客户端请求动态页面,则是Tomcat服务器响应请求

  因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销

  

Apache是一个历史悠久并且功能十分强大的WEB服务器,但其丰富的功能对于一个新手来说往往不知道从何下手。我个人感觉Apache的设计充分体现了模块化设计的优势,通过在动态模块加载(DSO)模式下的安装,任何子应用模块都可以通过配置文件的简单修改进行积木式的灵活配置。安装的过程可以从简单的静态html服务开始,一个模块一个模块的学习使用。从单纯的HTML静态服务(core),到复杂的动态页面服务(core + php, core + resin, core + php + mod_gzip, core + resin + mod_expire)。

本文主要从简化安装==>性能调优==>维护方便的角度,介绍了WEB服务的规划、HTTPD安装/应用模块配置、升级/维护等过程。让Apache和PHP,Resin等应用模块的独立升级,完全互不影响。

WEB应用容量规划:根据硬件配置和WEB应用的特点进行WEB服务的规划及一些简单的估算公式;

Apache安装过程:apache的通用的简化安装选项,方便以后的应用的模块化配置;

修改 HARD_SERVER_LIMIT:

vi /path/to/apache_src/src/include/httpdh

#define HARD_SERVER_LIMIT 2560 <===将原来的 HARD_SERVER_LIMIT 256 后面加个“0”

apache编译:

/configure --prefix=/home/apache --enable-shared=max --enable-module=most

可选应用模块/工具的安装:php resin mod_gzip mod_expire及各个模块之间的配合;

mod_php安装:/configure --with-apxs=/home/apache/bin/apxs --enable-track-vars --with-mysql

mod_resin安装:/configure --with-apxs=/home/apache/bin/apxs

mod_gzip安装:修改Makefile中的 apxs路径:然后make make install

工具:日志轮循工具cronolog安装:http://wwwcronologorg

升级/维护:看看通用和模块化的安装过程如何简化了日常的升级/维护工作;

按照以上的方法:系统管理员和应用管理员的职责可以清楚的分开,互相独立。

系统安装:系统管理员的职责就是安装好一台DSO模式的Apache,然后COLON即可,

应用安装:由应用管理员负责具体应用所需要的模块,比如PHP Resin等,并设置httpdconf中相关的配置。

系统升级:系统管理员:升级操作系统/升级Apache

应用升级:应用管理员:升级应用模块,PHP Resin等。

WEB应用的容量规划

Apache主要是一个内存消耗型的服务应用,我个人总结的经验公式:

apache_max_process_with_good_perfermance < (total_hardware_memory / apache_memory_per_process ) 2

apache_max_process = apache_max_process_with_good_perfermance 15

为什么会有一个apache_max_process_with_good_perfermance和apache_max_process呢?原因是在低负载下系统可以使用更多的内存用于文件系统的缓存,从而进一步提高单个请求的响应速度。在高负载下,系统的单个请求响应速度会慢不少,而超过 apache_max_process,系统会因为开始使用硬盘做虚拟内存交换空间而导致系统效率急剧下降。此外,同样的服务:2G内存的机器的 apache_max_process一般只设置到1G内存的17倍,因为Apache本身会因为进程过多导致性能下降。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » apache和tomcat有什么不同,为什么要整合apache 和tomcat?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情