整合Apache和Tomcat

来源:互联网 发布:网络泡妞高手聊天记录 编辑:程序博客网 时间:2024/05/16 17:48

Apacheweb服务器,Tomcat是应用(java)服务器,它只是一个servlet容器,是Apache的扩展。ApacheTomcat都可以做为独立的web服务器来运行,但是Apache不能解释java程序(jsp,serverlet)。Apache是普通服务器,本身只支持html即普通网页。不过可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然) 两者都是一种容器,只不过发布的东西不同:Apachehtml容器,功能像IIS一样;Tomcatjsp/servlet容器,用于发布jspjava的,类似的有IBMwebshereBEAWeblogicsunJRun等等。ApacheTomcat是独立的,在通一台服务器上可以集成。Apache只支持静态网页,但像asp,php,cgi,jsp等动态网页就需要Tomcat来处理。ApacheTomcat整合使用:如果客户端请求的是静态页面,则只需要Apache服务器响应请求;如果客户端请求动态页面,则是Tomcat服务器响应请求;因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销

Apache是世界使用排名第一的Web服务器。它可以运行在几乎所有广泛使用的计算机平台上。Apache 源于 NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache取自“a patchy server”的读音,意思是充满补丁的服务器,因为它是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简 单、速度快、性能稳定,并可做代理服务器来使用。ApacheLinux的支持相当完美。

Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消 耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60% 右。世界上很多著名的网站如Amazon.comYahoo!W3 ConsortiumFinancial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix WindowsLinux系统平台上)以及它的可移植性等方面。

Apache的诞生极富有戏剧性。当NCSA WWW服务器项目停顿后,那些使用NCSA WWW服务器的人们开始交换他们用于该服务器的补丁程序,他们也很快认识到成立管理这些补丁程序的论坛是必要的。就这样,诞生了Apache Group,后来这个团体在NCSA的基础上创建了Apache。如果你准备选择Web服务器,毫无疑问Apache是你的最佳选择。

Tomcat是一个开放源代码、运行servletJSP Web应用软件的基于JavaWeb应用软件容器。Tomcat Server是根据servletJSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。

TomcatJava Servlet 2.2JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是完全重写的Servlet API 2.2JSP 1.1兼容的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 (
互联网信息服务器)

       以上部分皆为引用。

       下面描述整合的具体步骤,不涉及到也原理性问题。关于Tomcat-connectors等的深入研究,以及切换的原理,在后续研究中,会深入探讨。

1.       我有什么?

Redhat Linux AS4

httpd-2.0.52-22.ent

apache-tomcat-6.0.16

2.       DOWNLOAD了什么?

mod_jk-1.2.26-httpd-2.0.61.so

3.       需要修改的配置文件:

httpd.conf增加如下内容:

LoadModule jk_module modules/mod_jk-1.2.26-httpd-2.0.61.so

Include /etc/httpd/conf/mod_jk.conf

 

4.       需要增加的配置文件, httpd.conf和同级目录下:

mod_jk.conf:

JkWorkersFile /etc/httpd/conf/workers.properties

 

# Where to put jk logs

JkLogFile /tmp/mod_jk.log

 

# Set the jk log level [debug/error/info]

JkLogLevel info

 

# Select the log format

JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"

 

# JkOptions indicate to send SSL KEY SIZE,

JkOptions  +ForwardKeySize +ForwardURICompat -ForwardDirectories

 

# JkRequestLogFormat set the request format

JkRequestLogFormat "%w %V %T"

 

JkMount /servlet/*  worker1

JkMount /*.jsp worker1

      

       workers.properties

worker.list=worker1

 

# Set properties for worker1

worker.worker1.type=ajp13

worker.worker1.host=localhost

worker.worker1.port=8009

worker.worker1.lbfactor=50

worker.worker1.cachesize=10

worker.worker1.cache_timeout=600

worker.worker1.socket_keepalive=1

worker.worker1.socket_timeout=300

 

5.       启动httpdTomcat

 

我尝试了一下,相当管用。但是这仅仅是然,而并非所以然,所以还有很多的工作需要去做。下面的Blog会描述所以然。待续!