apache和tomcat有什么不同,为什么要整合apache 和tomcat?
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并称为网页服务三剑客,可见其应用度之广泛。
参考资料:
服务器设置 gzip 压缩是 web 开发里很普遍的做法。假设你要请求一个 100k 的文件,网络传输速度为 50k/s,需要 2s 才能得到数据,但是如果在服务器设置了 gzip 压缩,将服务端的文件压缩到了 50k(实际上的压缩率往往小于 50%),这时候只需 1s 就能得到数据,然后在客户端解压即可。
可以对比下同一个文件在开启 gzip 前后的大小。
gzip 压缩前:
gzip 压缩后:
那么如何在服务端开启 gzip 服务呢?这里以 apache 为例简单介绍下。
打开 apache 的 "httpdconf" 文件,比如我的是在 "C:\wamp\bin\apache\Apache2221\conf" 目录下。找到以下这一行,将它前面的注释(#)去掉:
很多参考文件都提到同时要对 LoadModule headers_module modules/mod_headersso 去掉注释,说 "如果不开启这个,那网站就不能正常显示了" ,不过我在测试过程中没有去掉也没有问题。
接着再添上以下代码:
这样就能对所有文件进行 gzip 压缩了。压缩等级是个 1-9 之间的整数,取值范围在 1(最低) 到 9(最高)之间,不建议设置太高,虽然有很高的压缩率,但是占用更多的CPU资源。(本地测试了下 1 和 9 压缩率差不了多少)
实际开发中我们并不需要对所有文件进行压缩,比如我们无需对文件进行 gzip 压缩,因为文件(一般为 jpg、png等格式)本身已经压缩过了,再进行 gzip 压缩可能会适得其反(详见 要启用gzip压缩吗?绝对不要!,背景千万不要gzip压缩,尤其是PNG),类似的还有 PDF 以及音乐文件。所以我们可以设置过滤指定文件或者对指定文件进行压缩。
比如我们要对等特殊文件不进行 gzip 压缩处理:
或者指定文件格式进行压缩:
修改好后,保存 httpdconf 文件,记得重启 apache,再刷新浏览器看请求,应该已经生效了!
Tomcat集群中,Tomcat集群只完成了会话同步,没提供文件同步方案,为了同步文件等,可以使用同步工具GoodSync。
GoodSync无论是通过局域网络还是互联网络,只要是你的重要文件,都可以自动同步和备份。通过使用创新性的同步算法 —— GoodSync 将在未来数年中成为同步领域的领先者。
GoodSync利用创新的同步算法,可以有效防止文件误删除,数据意外丢失,并消除重复的文件。GoodSync已经从用户和媒体获得许多衷心的赞扬和高度评价。
GoodSync - 真正实用的双向文件同步工具,更多介绍可参看《GoodSync_》
详细说明参见《强大的数据同步工具GoodSync使用教程_百度经验》
不能单独运行javaweb项目,但可以和tomcat继承来支撑 javaweb项目--说白了就是apache将解析java交给tomcat来解析。
我举一个全站ajax的的建站例子吧。所有页面(包括主页,页眉页脚),静态资源(,JS文件,CSS文件等)都放到apache服务器上,当用户访问apache的静态页面时,页面通过ajax请求将请求发送到tomcat服务器,tomcat处理请求返回数据,通过页面里脚本(jquery或者freemark等)处理请求返回的数据将动态数据填充到静态页面里(或者会发起页面跳转请求等操作)。
最后总结下apache功能强大、高效,但并不能支持JSP及servlet,不太适合作为javaweb的处理服务器,但作为静态资源库和文件服务器,apache比起同类的产品强大的多。建议就像我举例的一样混用apache和tomcat来建站。
0条评论