2022年第章Tomcat与其他HTTP服务器集成 .pdf
《2022年第章Tomcat与其他HTTP服务器集成 .pdf》由会员分享,可在线阅读,更多相关《2022年第章Tomcat与其他HTTP服务器集成 .pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第 26 章Tomcat与其他 HTTP 服务器集成Tomcat 的最主要的功能是提供Servlet/JSP容器,尽管它也可以作为独立的Java Web 服务器,但在对静态资源(如HTML文件或图像文件)的处理速度,以及提供的Web 服务器管理功能方面Tomcat 都不如其他专业的HTTP 服务器,如IIS 和 Apache 服务器。因此在实际应用中,常常把Tomcat 与其他HTTP 服务器集成。对于不支持Servlet/JSP的 HTTP 服务器,可以通过Tomcat服务器来运行Servlet/JSP组件。当 Tomcat与其他 HTTP 服务器集成时,Tomcat服务器的工作模式通常为进
2、程外的Servlet容器,Tomcat 服务器与其他HTTP 服务器之间通过专门的插件来通信。关于Tomcat 服务器的工作模式的概念可以参考本书第2 章的 2.4 节(Tomcat的工作模式)。本 章首先讨论Tomcat 与 HTTP 服务器集成的 一般原 理,然后介绍Tomcat 与 Apache 服务器及 IIS 集成的 详细步骤,最 后介绍 把由多个 Tomcat 服务器 构成的集 群系统 与 Apache 服务器集成的方法。26.1 Tomcat与 HTTP 服务器集成的 原理Tomcat 服务器通过Connector 连接 器组件与 客户程序建立连接,Connector 组件 负责
3、接收客户 的请求,以及把Tomcat 服务器的 响应结果发送给客户。在 默认情况下,Tomcat在 server.xml 中配置了两种连接器:第 一个连接 器是 HTTP 连接 器,监听 8080 端口,负责建 立 HTTP 连接。在通过 浏览器访问 Tomcat 服务器的Web 应用时,使用的就是这个连接 器。第 二个连接 器是 AJP 连接 器,监听 8009 端口,负责和其他的HTTP 服务器 建立连接。在把 Tomcat 与其他 HTTP 服务器集成时,就需 要用到这个连接 器。Web 客户访问Tomcat服务器 上的 JSP组件的 两种方式如图26-1 所示。在图 26-1 中,We
4、b 客户 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。名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 20 页 -Tomcat与 Java Web开发技术详解(第2 版)6
5、18Tomcat&Java Web Development图 26-1 Web 客户访问Tomcat 服务器 上的 JSP组件的 两种 方式下 面,介绍 Tomcat与 HTTP 服务器之间是如何通信的。26.1.1 JK 插件Tomcat 提供 了专门的 JK 插件来 负责 Tomcat 和 HTTP 服务器的通信。应该把 JK插件 安置 在对方的HTTP 服务器 上,当 HTTP 服务器 接收到客户请求时,它 会通过 JK插件来过 滤 URL,JK 插件 根据预先配置好的 URL 映射 信息,决定 是否要把客户请求转发给 Tomcat 服务器处理。假定 在预先配置好 的 URL 映射 信息
6、 中,所有“/*.jsp”形 式的 URL 都由 Tomcat服务器来处理,那么 在如图 26-1 所示 的例子 中,JK 插件 将把 Web 客户 2 的请求转发给 Tomcat服务器,Tomcat 服务器于是运行index.jsp,然后 把响应结果 传给 HTTP 服务器,HTTP 服务器 再把响应 结果 传给 Web 客户 2。对于不 同的 HTTP 服务器,Tomcat 提供 了不同的 JK 插件的实 现模块,本 章将用到以下 JK 插件。l 与 Windows 下的 Apache HTTP 服务器集成:mod_jk.sol。l 与 Linux 下的 Apache HTTP 服务器集成
7、:mod_jk_linux.so。l 与 IIS 服务器集成:isapi_redirect.dll。26.1.2 AJP 协议AJP 是为 Tomcat 与 HTTP 服务器之间通信而定制的协议,能提供 较高的通信速度和效率。在 配置 Tomcat 与 HTTP 服务器集成时,读者可以不 必关心 AJP 协议 的细节。关于 AJP 的知识 可以参考以 下网站:http:/tomcat.apache.org/connectors-doc/ajp/ajpv13a.html 26.2 在 Windows 下 Tomcat与 Apache服务器集成Apache HTTP 服务器(下文简称 Apache
8、 服务器或 者 Apache)是由 Apache 软件组织提供的 开放 源代码软 件,它是 一个 非常优秀 的专业的 Web 服务器,为 网络 管理 员提供了丰富 多彩的 Web 管理功能,包括目录索引、目录别名、内容协商、可配置 的 HTTP名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 20 页 -第 26 章Tomcat与其他 HTTP 服务器集成Tomcat&Java Web Development619Tips 错误报告、CGI 程序的 SetUID 功能、子进程资源管理、服务器 端图像 映射、重写 URL、URL 拼写检查 及联机手册等。Apache 服务器本 身没
9、有 提供 Servlet/JSP 容器。因此,在实际应用中,把Tomcat与 Apache 服务器集成,可以建立具有实用 价值 的商业化的 Web 平台。在 Windows XP 下 Tomcat与 Apache 服务器集成 需要准备的软件参 见表 26-1。表 26-1 在 Windows XP 下 Tomcat 与 Apache 服务器集成需要准备的软件软件下 载 位 置本书附赠光盘上的位置基 于Windows XP的Apache HTTP 服务器 软件http:/httpd.apache.org/software/apache_2.0.63-win32-x86-no_ssl.msi JK
10、 插件http:/tomcat.apache.org/download-connectors.cgi sourcecode/chapter26/windows_apache/mod_jk.so 1安装 Apache 服务器运行 apache_2.0.63-win32-x86-no_ssl.msi,就启动 了 Apache 服务器的 安装程序,只要按 默认 设置进行 安装即 可。如果安 装成功,会自动 在 Windows 中加入 Apache HTTP服务,如图26-2 所示。图 26-2 加入 到 Windows 服务 列表 中的 Apache 服务假定 Apache 服务器的 根 目录 为,
11、在其 conf 子目录 下有一个配置文件 httpd.conf。如 果 Apache 安装在本 机上,并且采 用默认 的 80 端口 作为 HTTP 端口,则 在 httpd.conf 文件中 会 看到如下属性:Listen 80 在 操作系统 的【开始】【程序】【Apache HTTP Server 2.0】【Control Apache Server】菜单 中,提供 了重启(Restart)、启动(Start)和关 闭(Stop)Apache 服务器的子菜单。应该确保操作系统的80 端口没有被占用,否则Apache 服务器无法启动。当 Apache 服务器 启动 后,就可以通过 访问 Ap
12、ache 的测试页 来确定是否安 装成功。访问 http:/localhost,如果出现如图 26-3 所示的网页,就说明 Apache 已经 安装成功 了。名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 20 页 -Tomcat与 Java Web开发技术详解(第2 版)620Tomcat&Java Web Development图 26-3 Apache 服务器的 测试 网页2在 Apache 服务器中加入JK 插件要在 Apache 服务器中 加入 JK 插件,只要把 mod_jk.so 复制到/modules目录 下即可。3创建 workers.properties 文件
13、Apache 服务器把Tomcat 看做是为 自己工作的工 人(worker)。workers.properties文件用于 配置Tomcat 的信 息,它的 存 放 位置 为/conf/workers.properties。在本书附赠光盘的sourcecode/chapter26/windows_apache 目录 下提供 了workers.properties 文件,它的 内容如 下(“#”后 面为注释 信息):worker.list=worker1 worker.worker1.port=8009#工作端口,若没占用则不用修改worker.worker1.host=localhost#T
14、omcat服务器的地址worker.worker1.type=ajp13#类型worker.worker1.lbfactor=1#负载平衡因数以 上文件中的 属性 描述 参见表 26-2。表 26-2 workers.properties 文件的属性属性描述worker.list 指定 Tomcat 服务器名单worker.worker1.port 指定 Tomcat 服务器使用的 AJP 端口worker.worker1.host 指定 Tomcat 服务器的 IP 地址worker.worker1.type 指定 Tomcat 服务器与 Apache 服务器之间的通信 协议worker.w
15、orker1.lbfactor 指定负 载平衡因数(Load Balance Factor)。只有在使用了负载平衡器(LoadBalancer)的情况下,这个属性 才有意义以 上 worker.list 指定 Tomcat服务器 名单。例如“worker.list=worker1”表示只有一个 Tomcat 服务器,名为“worker1”。再例 如“worker.list=worker1,worker2”表示有两个Tomcat 服 务 器,分 别名 为“worker1”和“worker2”。worker.worker1.port及worker.worker1.host 用于 设置 名为“wor
16、ker1”的 Tomcat 服务器的 有关属性,如 果要设名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 20 页 -第 26 章Tomcat与其他 HTTP 服务器集成Tomcat&Java Web Development621置 worker2 的 port 属性,则可以 采用“worker.worker2.port=8109”的形式。4修改 Apache 服务器的配置文件httpd.conf 打 开/conf/httpd.conf文件,在其 末尾 加入 以下内容:#Using mod_jk.so to redirect dynamic calls to Tomcat Loa
17、dModule jk_module modules/mod_jk.so JkWorkersFile conf/workers.properties JkLogFile logs/mod_jk.log JkLogLevel debug JkMount/*.jsp worker1 JkMount/helloapp/*worker1 在本书 附赠光盘 的 sourcecode/chapter26/windows_apache/httpd_modify.conf 文件中提供 了 以上内容,它 指示 Apache 服务器 加载 JK 插件,并且 为 JK 插件设置相关属性,这些属性 的描述 参见表 26
18、-3。表 26-3 JK 插件的相关属性属性描述LoadModule 指定加载的 JK 插件JkWorkersFile 指定 JK 插件的工作文件JkLogFile 指定 JK 插件使用的 日志文件,在实际 配置中,可以通过 查看这个日志文件,来 跟踪 JK插件的运行过程,这对排错很有用JkLogLevel 指定 JK 插件的 日志级别,可 选值包括 debug、info 和 error等JkMount 指定 JK 插件处理的URL 映射信息JkMount 用来 指定 URL 映射 信息,“JkMount/*.jsp worker1”表示“/*.jsp”形式的 URL 都由 worker1 代
19、表 的 Tomcat 服务器来处理;“JkMount/helloapp/*worker1”表示访问 helloapp 应用的 URL 也都 由 worker1 来处理。5测试配置重启 Tomcat 服务器和Apache 服务器,并通过浏览 器访问 http:/localhost/index.jsp,如果出 现 Tomcat 的默认 主页,就说明 配置 已经成功。此外,如果在 Tomcat 服务器 上已经 发 布了 helloapp 应用(把本书 附赠光盘 的 sourcecode/chapter26 目录 下的 helloapp目 录 复 制 到/webapps目 录 下),则 可 以 访 问
20、http:/localhost/helloapp/hello.htm,如 果正常 返回 helloapp 应用的 hello.htm 网页,说明配置 已经成功。如果配置有 误,可以 查看 JK 插件 生成的 日志信息,它有助于查找错误 原因。在 Apache服 务 器 的 配 置 文 件httpd.conf中 设 定 该 日 志 文 件 的 存 放 位 置 为/logs/mod_jk.log。26.3 在 Linux 下 Tomcat与 Apache服务器集成在 Linux 下 Tomcat 与 Apache 服务器集成的步骤 与在 Windows XP 下非常相似。在 Linux 下 Tom
21、cat 与 Apache 服务器集成 需要准备的软件参 见表 26-4。名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 20 页 -Tomcat与 Java Web开发技术详解(第2 版)622Tomcat&Java Web Development表 26-4 在 Linux 下 Tomcat 与 Apache 服务器集成需要准备的软件软件下 载 位 置本书附赠光盘上的位置基 于Linux的Apache HTTP 服务器 软件http:/httpd.apache.org/software/httpd-2.0.63.tar.gz JK 插件http:/tomcat.apache.o
22、rg/download-connectors.cgi sourcecode/chapter26/linux_apache/mod_jk_linux.so 下 文介绍 在 Linux(以 RedHat 为例)下把 Tomcat与 Apache 服务器集成的方法。1安装 Apache 服务器以 下是在 Linux 下安 装 Apache 服务器的 步骤。(1)建 立 httpd 用户,把 httpd-2.0.63.tar.gz 文件复制到/tmp 目录下。(2)将 httpd-2.0.63.tar.gz 文件 解压,命令 为:gzip-d httpd-2.0.63.tar.gz tar xvf h
23、ttpd-2.0.63.tar(3)用 超级 用户账号登 录 Linux,命令 为:su(4)转到/tmp/httpd-2.0.63 目录,配置 Apache 服务器,命令 为:./configure-prefix=/home/httpd“-prefix”选项 用来 设定 Apache 的 安装目录。根据 以上设置,Apache 将被安装到/home/httpd 目录。(5)编译 Apache,命令 为:make。(6)安 装 Apache,命令 为:make install。(7)在安装好 以后,假定 Apache 的根目录为 ,打开/conf/httpd.conf文件,配置“Listen”
24、和“ServerName”属性:Listen 80 ServerName localhost(8)转到/bin目录,通过运行apachectl configtest 命令,来 测试安装 是否成功。如 果显示 Syntax ok,则表示安 装成功。启动 Apache 服务器的 命令 为:/bin/apachect1 start。终止 Apache 服务器的 命令 为:/bin/apachect1 stop。名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 20 页 -第 26 章Tomcat与其他 HTTP 服务器集成Tomcat&Java Web Development623Tip
25、s 应该确保操作系统的80 端口没有被占用,否则Apache 服务器无法启动。也可以通过 访问 Apache 的测试页 来 确定是否安装成功。访问 http:/localhost,如果出现 如本 章 26.2 节的图 26-3 所示 的网页,就说明 Apache 已经安装成功 了。2在 Apache 服务器中加入JK 插件要在 Apache 中加入 JK 插件,只要把 mod_jk_linux.so 复制到/modules目录 下即可。3创建 workers.properties 文件在/conf目录 下 创建以下 workers.properties 文件。此外,在本书附赠光盘 的 sour
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年第章Tomcat与其他HTTP服务器集成 2022 年第章 Tomcat 与其 HTTP 服务器 集成
限制150内