分享

tomcat开发技术之与http服务器的集成 (1)

 qzg589 2005-08-13
Tomcat开发技术之与HTTP服务器的集成 (1)
作者:孙卫琴 发文时间:2005.06.07
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服务器的工作模式的概念可以参考本书1.4节。

本章首先讨论Tomcat与HTTP服务器集成的一般原理,然后介绍Tomcat与Apache以及IIS集成的详细步骤。

22.1 Tomcat与HTTP服务器集成的原理

Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户。默认情况下,Tomcat在server.xml中配置了两种连接器:

<!-- Define a non-SSL Coyote HTTP/1.1
Connector on port 8080 -->
    <Connector port="8080"
               maxThreads="150" 
			   minSpareThreads="25" 
			   maxSpareThreads="75"
               enableLookups="false"
			   redirectPort="8443" 
			   acceptCount="100"
               debug="0" 
			   connectionTimeout="20000" 
               disableUploadTimeout="true" />

    <!-- Define a Coyote/JK2 AJP 1.3 
	Connector on port 8009 -->
    <Connector port="8009" 
               enableLookups="false"
			   redirectPort="8443" debug="0"
               protocol="AJP/1.3" />


第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。

第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。

Web客户访问Tomcat服务器上JSP组件的两种方式如图22-1所示。



图22-1 Web客户访问Tomcat服务器上的JSP组件的两种方式


在图22-1中,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服务器之间是如何通信的。

22.1.1 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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多