Tomcat与IIS集成详解

本文介绍如何把IIS服务器与Tomcat集成。本文的参考书籍是《Tomcat与Java Web开发技术详解》第三版,作者:孙卫琴。
本文所用的软件版本为:Window10,Tomcat9。
本文所涉及的源代码的下载网址为:http://www.javathinker.net/javaweb/iis-tomcat.zip

IIS(Internet Information Service)服务器是微软开发的功能强大的Web服务器,IIS为创建和开发电子商务提供了安全的Web平台。把Tomcat与IIS集成,可以扩展IIS的功能,使它支持Java Web应用。

1.1 安装和启动IIS服务器

高版本的Windows自带了IIS,但默认情况下没有被启用。下面以Window10为例,介绍启用IIS的步骤。
(1)选择操作系统的【控制面板】→【程序】→【启动或关闭Windows功能】,打开“启动或关闭Windows功能”的窗口,参见图1-1。

图1-1 打开“启动或关闭Windows功能”窗口

(2)在“启动或关闭Windows功能”的窗口中,选择与IIS信息服务相关的所有选项,参见图1-2。确保启用了“应用程序开发功能”中的各个选项。

图1-2 在Windows中启用IIS的各项功能

(3)选择操作系统的【控制面板】→【系统和安全】→【管理工具】→【Internet Information Services (IIS)管理器】,打开IIS管理器。
(4)在IIS管理器窗口左侧的目录树中选择表示本地电脑的主机节点,点鼠标右键,在下拉菜单中选择“启动”,就会启动IIS服务器。如果选择“停止”,就会终止IIS服务器,参见图1-3。

图1-3 在IIS管理器中启动或终止IIS服务器

(5)按照以上步骤(4)启动IIS服务器后,通过浏览器访问http://localhost
如果出现如图1-4所示的页面,就表示IIS服务器已经安装和启动成功。

图1-4 访问IIS服务器的主页

1.2 准备相关文件
在开始本节的操作之前,假定已经按照本章1.1节的步骤,在机器上安装了IIS服务器,接下来准备好以下3个文件,它们的存放路径为Tomcat根目录的conf目录下(<CATALINA_HOME>/conf):
(1)JK插件:isapi_redirect.dll文件
(2)workers.properties文件
(3)uriworkermap.properties文件

1.JK插件
在源代码包的sourcecode/iis目录下提供了用于IIS的JK插件:isapi_redirect.dll,此外,也可以到以下地址下载最新的JK插件:
http://tomcat.apache.org/download-connectors.cgi

把JK插件isapi_redirect.dll拷贝到<CATALINA_HOME>/conf目录下。

针对不同的Windows版本,需要下载不同的IIS JK插件。在配套源代码包中,sourcecode/iis/isapi_redirect.dll适用于X86_64类型的Windows;sourcecode/iis/isapi_redirect_windows-i386.dll适用于i386型号的Windows。如果选用了不匹配的JK插件,会导致IIS服务器无法加载它。

2.workers.properties文件
在<CATALINA_HOME>/conf目录下创建如下的workers.properties文件。在配套源代码包的sourcecode/ iis目录下也提供了该文件:

worker.list=worker1
worker.worker1.port=8009 #工作端口,若没占用则不用修改
worker.worker1.host=localhost #Tomcat服务器的地址
worker.worker1.type=ajp13 #类型
worker.worker1.lbfactor=1 #负载平衡因数

3.uriworkermap.properties文件
在<CATALINA_HOME>/conf目录下创建如下的uriworkermap.properties文件,它为JK插件指定URL映射。在配套源代码包的sourcecode/iis目录下也提供了该文件:

/*.jsp=worker1
/helloapp/*=worker1

以上配置代码表明worker1负责处理的URL包括“/*.jsp”,以及helloapp应用。

尽管把以上3个文件都放在Tomcat目录下,其实Tomcat服务器并不会访问这些文件。以上给出的是按照惯例的一种配置。事实上,也可以把这些文件放在文件系统的其他地方。另外,在实际操作过程中,发现把这个三个文件放在相同的目录下,更容易成功地把Tomcat与IIS集成。

1.3 编辑注册表

在配置Apache和Tomcat集成时,JK插件的属性是在Apache的配置文件httpd.conf中设置的。配置IIS和Tomcat集成时,应该在操作系统的注册表中设置JK插件的属性,以下是操作步骤。
(1)在Windows 中通过regedit命令编辑注册表,创建一个新的键:HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector \1.0,如图1-5所示。

图1-5 在注册表中创建Jakarta Isapi Redirector\1.0键

(2)在Jakarta Isapi Redirector\1.0键下面创建新的字符串,参见表1-1,创建好之后的注册表如图1-6所示。
表1-1 在Jakarta Isapi Redirector\1.0键下面创建的字符串


图1-6 在Jakarta Isapi Redirector\1.0键下面创建新的字符串

在配套源代码包的sourcecode/iis目录下提供了注册表编辑文件jk.reg,如果不想按照以上方式手工修改注册表,也可以直接运行jk.reg文件(选中这个文件再双击鼠标即可),它会把以上配置内容自动添加到注册表中。jk.reg的内容如下:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation
\Jakarta Isapi Redirector\1.0]
"extension_uri"="/jakarta/isapi_redirect.dll"
"log_file"="C:\tomcat\logs\isapi.log"
"log_level"="debug"
"worker_file"="C:\tomcat\conf\workers.properties"
"worker_mount_file"="C:\tomcat\conf\uriworkermap.properties"

在运行jk.reg文件之前,应该把文件中的“C:\tomcat”目录替换为读者本地机器上Tomcat的实际安装目录。

1.4 在IIS中加入“jakarta”虚拟目录

注册表修改以后,应该在IIS中加入名为“jakarta”的虚拟目录,它是JK插件所在的目录,以下是操作步骤。
(1)选择操作系统的【控制面板】→【系统和安全】→【管理工具】→【Internet Information Services (IIS)管理器】,打开IIS管理器。
(2)选中窗口左侧的目录树中的【Default Web Site】,单击鼠标右键,在下拉菜单中选择【添加虚拟目录】选项,如图1-7所示。创建一个虚拟目录,名为“jakarta”,对应的实际文件路径应该是isapi_redirect.dll文件所在的目录<CATALINA_HOME>/conf,参见图1-8。

图1-7 选中“添加虚拟目录”菜单


图1-8 添加虚拟目录

1.5 把JK插件作为ISAPI筛选器加入到IIS

在IIS中加入名为“jakarta”的虚拟目录后,还应该把JK插件作为ISAPI筛选器(也称为过滤器)加入到IIS中,以下是操作步骤。
(1)在IIS管理器窗口左侧的目录树中选择“Default Web Site”节点,然后在右侧窗口中选择“ISAPI筛选器”栏目,添加新的ISAPI筛选器,筛选器名称为“jakarta”,可执行文件为<CATALINA_HOME>/conf /isapi_redirect.dll,如图1-9所示。

图1-9 添加新的ISAPI筛选器

(2)在IIS管理器窗口左侧的目录树中选择IIS主机节点,然后在右侧窗口中选择“ISAPI和CGI限制”栏目,然后添加一条新的ISAPI和CGI限制,参见图1-10。在图1-10中,要把“允许执行扩展路径”选项打勾。

图1-10 添加ISAPI限制

1.6 测试配置

重启Tomcat服务器和IIS服务器,通过浏览器访问:
http://localhost/index.jsp
如果出现Tomcat的默认主页,说明配置已经成功。此外,如果在Tomcat服务器上已经发布了helloapp应用(把配套源代码包的sourcecode目录下的helloapp目录拷贝到<CATALINA_HOME>/webapps目录下),可以访问:
http://localhost/helloapp/hello.htm
如果正常返回helloapp应用的hello.htm网页,说明配置已经成功;如果配置有误,可以按照以下方法来查找错误原因:
(1)如果isapi_redirect.dll、workers.properties和uriworkermap.properties文件没有放在同一个目录下,那么尝试把它们放在同一个目录下。
(2)确保下载的JK插件文件与Windows版本匹配。
(3)检查是否在注册表中注册了“Jakarta Isapi Redirector”键。
(4)确保在IIS管理器中添加虚拟目录和ISAPI筛选器时,提供的名字和文件路径都正确无误。
(5)在IIS管理器中添加了虚拟目录或ISAPI筛选器后,要重新启动IIS服务器才能生效。
可以查看JK插件生成的日志信息,它有助于查找错误原因。在注册表中设定该日志文件的存放位置为<CATALINA_HOME>/logs/isapi.log。

作者:孙卫琴

原文地址:https://blog.51cto.com/sunweiqin/2408661

时间: 2024-10-12 20:13:16

Tomcat与IIS集成详解的相关文章

Apache + Tomcat集群配置详解 (1)

一.软件准备 Apache 2.2 : http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl版本 Tomcat 6.0 : http://tomcat.apache.org/download-60.cgi,下载Tomcat 6.0.18 zip文件 注意:由于Apache和Tomcat项目与集群相关的模块均处于持续发展和优化过程中,因此笔者不保证本文配置方法对所有Apache和Tomcat版本均适用. 二.软件安装 把Apache安装为运

Apache + Tomcat集群配置详解

Apache + Tomcat集群配置详解 一.软件准备 Apache 2.2 : http://httpd.apache.org/download.cgi,下载msi安装程序,选择no ssl版本 Tomcat 6.0 : http://tomcat.apache.org/download-60.cgi,下载Tomcat 6.0.18 zip文件 注意:由于Apache和Tomcat项目与集群相关的模块均处于持续发展和优化过程中,因此笔者不保证本文配置方法对所有Apache和Tomcat版本均

S2SH框架集成详解(Struts 2.3.16 + Spring 3.2.6 + Hibernate 3.6.10)

近期集成了一次较新版本的s2sh,出现了不少问题,网上资料也是良莠不齐,有的甚至就是扯淡,简单的把jar包扔进去就以为是集成成功了,在这里整理一下详细的步骤,若哪位有什么不同看法,可以留言,欢迎批评改正. 首先说下集成的环境,Eclipse 4.4,Tomcat 7.0.54,Struts2.3.16,Hibernate3.6.10,Spring3.2.6 相关JAR包已上传至百度云:http://pan.baidu.com/s/1pJluA5l 搭建Struts2框架 1. 创建Java We

(2) tomcat配置文件server.xml详解

1. 入门示例:虚拟主机提供web服务 该示例通过设置虚拟主机来提供web服务,因为是入门示例,所以设置极其简单,只需修改$CATALINA_HOME/conf/server.xml文件为如下内容即可,本文的tomcat安装在/application/tomcat下,因此$CATALINA_HOME=/application/tomcat. 其中大部分都采用了默认设置,只是在engine容器中添加了两个Host容器. <?xml version="1.0" encoding=&q

Tomcat启动过程原理详解 -- 非常的报错:涉及了2个web.xml等文件的加载流程

Tomcat启动过程原理详解 发表于: Tomcat, Web Server, 旧文存档 | 作者: 谋万世全局者 标签: Tomcat,原理,启动过程,详解 基于Java的Web 应用程序是 servlet.JSP 页面.静态页面.类和其他资源的集合,它们可以用标准方式打包,并运行在来自多个供应商的多个容器(诸如tomcat).Web 应用程序存在于结构化层次结构的目录中,该层次结构是由 Java Servlet 规范定义的.Web 应用程序的根目录包含直接存储或存储在子文件夹中的所有公共资源

Linux 定时重启tomcat及配置定时任务详解

Linux 定时重启tomcat及配置定时任务详解 1.首先编写重启tomcat脚本 #!/bin/sh TOMCAT_PATH=tomcat地址路径/bin echo "TOMCAT_PATH is $TOMCAT_PATH" PID=`ps aux | grep tomcat地址路径 | grep java | awk '{print $2}'` if [ -n "$PID" ]; then echo "Will shutdown tomcat: $P

tomcat配置文件server.xml详解 转载http://blog.csdn.net/yuanxuegui2008/article/details/6056754

元素名 属性 解释 server port 指定一个端口,这个端口负责监听关闭tomcat 的请求 shutdown 指定向端口发送的命令字符串 service name 指定service 的名字 Connector ( 表示客户端和service之间的连接) port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求 minProcessors 服务器启动时创建的处理请求的线程数 maxProcessors 最大可以创建的处理请求的线程数 enableLookups 如果为tru

Tomcat 6 JNDI数据源详解

数据库连接池这个概念应该都不陌生,在Java中连接池也就是数据库的连接池,它是一种采用连接复用的思想避免多次连接造成资源的浪费机制. 最常见的连接池就是DBCP和C30P了,在tomcat中默认使用的DBCP的连接池,在Hibernate中则默认使用的是C30P.他们的区别对于使用者来说最明显的就是,默认情况下DBCP不提供空闲连接的释放,需要手动开启. 下面介绍下Tomcat中数据连接池的配置及使用. 介绍 本篇依赖一个概念——JNDI,可以参考前面的博客:JNDI资源详解. 对于JNDI,可

Tomcat负载均衡原理详解及配置

结构图 使用Tomcat的童鞋们注意了.为了增加tomcat的性能和稳定性,我们一般采用balance和session同步机制. 下图列出了我们常用也是最简单的解决方案. 说明 1 balance 负载均衡我们一般采用Apache proxy和Apache+mod_jk方式 所使用软件:Apache2.2.19 http://httpd.apache.org/download.cgi#apache22; Tomcat7          http://tomcat.apache.org/down