Tomcat与其他HTTP服务器集成
Tomcat最主要的功能是提供Servlet/JSP容器,尽管它也可以作为独立的Java Web服务器,它在对静态资源(如HTML文件或图像文件)的处理速度,以及提供的Web服务器管理功能方面都不如其他专业的HTTP服务器,如IIS和Apache服务器。
因此在实际应用中,常常把Tomcat与其他HTTP服务器集成。对于不支持Servlet/JSP的HTTP服务器,可以通过Tomcat服务器来运行Servlet/JSP组件。
当Tomcat与其他HTTP服务器集成时,Tomcat服务器的工作模式通常为进程外的Servlet容器,Tomcat服务器与其他HTTP服务器之间通过专门的插件来通信。
Tomcat与HTTP服务器集成的原理
Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户。默认情况下,Tomcat在server.xml中配置了两种连接器:
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080-->
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8843"/>
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。
第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。
Web客户访问Tomcat服务器上JSP组件的两种方式如下图所示。
上图中,Web客户1直接访问Tomcat服务器上的JSP组件,他访问的URL为http://localhost:8080/index.jsp。Web客户2通过HTTP服务器访问Tomcat服务器上的JSP组件。假定HTTP服务器使用的HTTP端口为默认的80端口,那么Web客户2访问的URL为http://localhost:80/index.jsp 或者 http://localhost/index.jsp。
下面,介绍Tomcat与HTTP服务器之间是如何通信的。
JK插件
Tomcat提供了专门的JK插件来负责Tomcat和HTTP服务器的通信。应该把JK插件安置在对方的HTTP服务器上。当HTTP服务器接收到客户请求时,它会通过JK插件来过滤URL,JK插件根据预先配置好的URL映射信息,决定是否要把客户请求转发给Tomcat服务器处理。
假定在预先配置好的URL映射信息中,所有"/*.jsp"形式的URL都由Tomcat服务器来处理,那么在图22-1的例子中,JK插件将把客户请求转发给Tomcat服务器,Tomcat服务器于是运行index.jsp,然后把响应结果传给HTTP服务器,HTTP服务器再把响应结果传给Web客户2。
对于不同的HTTP服务器,Tomcat提供了不同的JK插件的实现模块。本章将用到以下JK插件:
与Windows下的Apache HTTP服务器集成:mod_jk_2.0.46.dll
与Linux(RedHet)下的Apache HTTP服务器集成:mod_jk.so-ap2.0.46-rh72..46-rh72
与IIS服务器集成:isapi_redirect.dll
AJP是为Tomcat与HTTP服务器之间通信而定制的协议,能提供较高的通信速度和效率。在配置Tomcat与HTTP服务器集成中,读者可以不必关心AJP协议的细节。关于AJP的知识也可以参考网址:
http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk2/doc/common/AJPv13.html
在Windows下Tomcat与Apache服务器集成
包括了五个步骤,这里不细说,只描述其步骤名称。
- 安装Apache服务器。
- 在Apache服务器中加入JK插件。
- 创建workers.properties文件。
- 修改Apache服务器的配置文件httpd.conf。
- 测试配置。
这以上的文字和图,出之孙卫琴的《Tomcat与Java Web开发技术详解第二版》
非常简单的配置方法,这样就可以让几台tomcat服务器集群使用,均衡负载。也可以让不同的服务器针对不同的URL过滤条件,具有不同的功能。
分享到:
相关推荐
本文为您讲述了如何在 Windows 或 Linux 下进行 Tomcat 集群的安装配置。 Windows 下 Tomcat 集群的安装配置与 Linux 下...使用 Apache作为集群的代理服务器(它可以安装在任何一台机 器上),它同时也负责负载均衡。
在实际应用中,如果网站的访问量很大,为了提高访问速度,可以与多个Tomcat服务器与Apache服务器集成,让他们共同运行servlet/jsp 组件的任务,多个Tomcat服务器构成了一个集群(Cluster)系统,共同为客户提供服务...
在实际操作中,主要是Apache作为主服务器运行,当监听到有jsp或者servlet的请求时,将请求转发给tomcat服务器,由tomcat服务器进行解析后,发回apache,再由apache发回用户。 在tomcat中有两个监听的端口,一个是...
apache与tomcat联合实现负载平衡与集群的实现
Tomcat和Apache集群和负载均衡配置
Apache+Tomcat集群配置详解 把Apache安装为运行在80端口的Windows服务,安装成功后在系统服务列表中可以看到Apache2.2服务。对于已安装IIS的机器,在启动Apache服务之前必须首先停止IIS Admin服务,不然会因为端口...
详细描述了如何配置apache+tomcat集群,经过测试可以使用
将以下Module的注释去掉,这里并没有使用mod_jk.so进行apache和tomcat的链接,从2.X以后apache自身已集成了mod_jk.so的功能。只需简单的把下面几行去掉注释,就相当于以前用mod_jk.so比较繁琐的配置了。这里主要采用...
apache tomcat负载集群,appache负载,tomcat负载
Apache+Tomcat集群配置,Apache+Tomcat集群配置,Apache+Tomcat集群配置
apache2.2和tomcat6.0集群配置,Apache和Tomcat集群配置步骤。
tomcat—apache集群虚拟主机配置详解!
Apache+Tomcat集群,本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置。
tomcat+apache实现集群/负载均衡,... 修改tomcat1, tomcat2的server.xml,将集群部分配置的在注释符删掉,并将tomcat2的4001端口改为4002,以避免与tomcat冲突,当然,如果是两台电脑,是不用改端口的,去掉注释符即可。
apache,tomcat配置服务器集群
NULL 博文链接:https://tywo45.iteye.com/blog/1113285
自己调试的,用apache2.2.8 + tomcat6.0.16实现的服务器集群:在windows xp上测试通过,session实现了不同tomcat下的共享,费了老大劲儿啦,给点分儿吧。。。。~~~~可怜中~~~~
apache tomcat mysql 多服务器 集群 负载 均衡 ,解决方案
Apache,Tomcat集群和负载均衡包括了apache-tomcat-5.5.29.zip,apache_2.2.4-win32-x86-no_ssl.msi,mod_jk-1.2.28-httpd-2.2.3.so,ApacheTomcat整合文档.doc,Apache,Tomcat集群和负载均衡教程.doc,Tomcat负载...