﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Yemao'Blog For Java-文章分类-JSP</title><link>http://www.blogjava.net/scansoft/category/27417.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 07 Dec 2007 08:46:51 GMT</lastBuildDate><pubDate>Fri, 07 Dec 2007 08:46:51 GMT</pubDate><ttl>60</ttl><item><title>TOMCAT与IIS集成 </title><link>http://www.blogjava.net/scansoft/articles/161633.html</link><dc:creator>野猫</dc:creator><author>野猫</author><pubDate>Mon, 19 Nov 2007 07:42:00 GMT</pubDate><guid>http://www.blogjava.net/scansoft/articles/161633.html</guid><wfw:comment>http://www.blogjava.net/scansoft/comments/161633.html</wfw:comment><comments>http://www.blogjava.net/scansoft/articles/161633.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/scansoft/comments/commentRss/161633.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/scansoft/services/trackbacks/161633.html</trackback:ping><description><![CDATA[IIS（Internet Information Service）服务器是微软开发的功能强大的Web服务器，IIS为创建和开发电子商务的提供了安全的Web平台。把Tomcat与IIS集成，可以扩展IIS的功能，使它支持Java Web应用。<br />
<br />
一.1 准备相关文件<br />
<br />
在开始本节的操作之前，假定在机器上安装了IIS服务器，应该准备好以下3个文件。<br />
<br />
1．JK插件<br />
<br />
在本书配套光盘的lib目录下提供了用于IIS的JK插件：isapi_redirect.dll，此外，也可以到以下地址下载最新的JK插件：http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk，可以把JK插件isapi_redirect.dll拷贝到/bin目录下。<br />
<br />
2．workers.properties文件<br />
<br />
在/conf目录下创建如下的workers.properties文件。在本书配套光盘的sourcecode/chapter22/iis目录下也提供了该文件：<br />
<br />
<div align="left">
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre>workers.tomcat_home=C:\jakarta-tomcat
            #让mod_jk模块知道Tomcat
            workers.java_home=C:\j2sdk1.4.2
            #让mod_jk模块知道j2sdk
            ps=\  #指定文件路径分割符
            worker.list=worker1
            worker.worker1.port=8009
            #工作端口,若没占用则不用修改
            worker.worker1.host=localhost
            #Tomcat服务器的地址
            worker.worker1.type=ajp13
            #类型
            worker.worker1.lbfactor=1
            #负载平衡因数
            </pre>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p style="text-indent: 2em" align="left">3．uriworkermap.properties文件</p>
<p style="text-indent: 2em" align="left">在/conf目录下创建如下的uriworkermap.properties文件，它为JK插件指定URL映射。在本书配套光盘的sourcecode/chapter22/iis目录下也提供了该文件：</p>
<p style="text-indent: 2em" align="left">?/P&gt;</p>
<div align="left">
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre>/*.jsp=worker1
            /helloapp/*=worker1
            </pre>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p style="text-indent: 2em" align="left">尽管把以上3个文件都放在Tomcat目录下，其实Tomcat服务器并不会访问这些文件。以上给出的是按照惯例的一种配置，事实上，也可以把这些文件放在文件系统的其他地方。</p>
<p style="text-indent: 2em" align="left">二.&nbsp;编辑注册表</p>
<p style="text-indent: 2em" align="left">在配置Apache和Tomcat集成时，JK插件的属性是在Apache的配置文件httpd.conf中设置的。配置IIS和Tomcat集成时，应该在操作系统的注册表中设置JK插件的属性，以下是操作步骤。</p>
<p style="text-indent: 2em" align="left">（1）在Windows NT/2000中通过regedit命令编辑注册表，创建一个新的键：HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Jakarta Isapi Redirector \1.0，如图4所示。</p>
<p style="text-indent: 2em" align="left">?/P&gt;</p>
<div align="left"><img style="border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid; width: 520px; border-bottom: black 1px solid; height: 325px" src="http://industry.ccidnet.com/col/attachment/2005/6/449121.png"  alt="" /></div>
<p style="text-indent: 2em" align="left">?/P&gt;</p>
<div align="left">图4 在注册表中创建Jakarta Isapi Redirector\1.0键</div>
<p style="text-indent: 2em" align="left">（2）在Jakarta Isapi Redirector\1.0键下面创建新的字符串，参见表22-5，创建好之后的注册表如图22-5所示。</p>
<p style="text-indent: 2em" align="left">表5 在Jakarta Isapi Redirector\1.0键下面创建的字符串</p>
<p style="text-indent: 2em" align="left">?/P&gt;</p>
<p style="text-indent: 2em" align="left"></p>
<table border="1">
    <tbody>
        <tr>
            <td>字 符 串</td>
            <td>字 符 串 值</td>
            <td>描 述</td>
        </tr>
        <tr>
            <td>extension_uri</td>
            <td>/jakarta/isapi_redirect.dll</td>
            <td>指定访问isapi_redirect.dll文件的uri，在IIS中将创建名为jakarta的虚拟目录，在该目录下包含isapi_redirect.dll文件，参见22.4.3节</td>
        </tr>
        <tr>
            <td>log_file</td>
            <td>C:\jakarta-tomcat\logs\isapi.log</td>
            <td>指定JK插件使用的日志文件，在实际配置中，可以通过查看这个日志文件，来跟踪JK插件的运行过程，这对排错很有用</td>
        </tr>
        <tr>
            <td>log_level</td>
            <td>debug</td>
            <td>指定JK插件的日志级别， 可选值包括debug、info和error等</td>
        </tr>
        <tr>
            <td>worker_file</td>
            <td>C:\ jakarta-tomcat\conf \workers.properties</td>
            <td>指定JK插件的工作文件</td>
        </tr>
        <tr>
            <td>worker_mount_file</td>
            <td>C:\jakarta-tomcat\conf \uriworkermap.properties</td>
            <td>指定JK插件的URL映射文件</td>
        </tr>
    </tbody>
</table>
<p style="text-indent: 2em" align="left">?/P&gt;</p>
<div align="left"><img style="border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid; border-bottom: black 1px solid" src="http://industry.ccidnet.com/col/attachment/2005/6/449123.jpg"  alt="" /></div>
<p style="text-indent: 2em" align="left">?/P&gt;</p>
<div align="left">图5 在Jakarta Isapi Redirector\1.0键下面创建新的字符串</div>
<p style="text-indent: 2em" align="left">在本书配套光盘的sourcecode/chapter22/iis目录下提供了注册表编辑文件jk.reg，如果不想按照以上方式手工修改注册表，也可以直接运行jk.reg文件（选中这个文件再双击鼠标即可），它会把以上配置内容自动添加到注册表中。jk.reg的内容如下：</p>
<p style="text-indent: 2em" align="left">?/P&gt;</p>
<div align="left">
<table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1">
    <tbody>
        <tr>
            <td class="code" style="font-size: 9pt" bgcolor="#e6e6e6">
            <pre>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:\\jakarta-tomcat
            \\logs\\isapi.log"
            "log_level"="debug"
            "worker_file"="C:\\jakarta-tomcat
            \\conf\\workers.properties"
            "worker_mount_file"="C:\\jakarta-tomcat
            \\conf\\uriworkermap.properties"
            </pre>
            </td>
        </tr>
    </tbody>
</table>
</div>
<p style="text-indent: 2em" align="left">在运行jk.reg文件之前，应该把文件中的"C:\\jakarta-tomcat"目录替换为Tomcat安装目录。</p>
<p style="text-indent: 2em" align="left">三.&nbsp;在IIS中加入"jakarta"虚拟目录</p>
<p style="text-indent: 2em" align="left">注册表修改以后，应该在IIS中加入名为"jakarta"的虚拟目录，它是JK插件所在的目录，以下是操作步骤。</p>
<p style="text-indent: 2em" align="left">（1）选择操作系统的【控制面板】&#8594;【管理工具】&#8594;【Internet服务管理器】选项，打开Internet信息服务管理器，如图6所示。</p>
<p style="text-indent: 2em" align="left">?/P&gt;</p>
<div align="left"><img style="border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid; border-bottom: black 1px solid" src="http://industry.ccidnet.com/col/attachment/2005/6/449125.jpg"  alt="" /></div>
<p style="text-indent: 2em" align="left">?/P&gt;</p>
<div align="left">图6 Internet信息服务管理器窗口</div>
<p style="text-indent: 2em" align="left">（2）选中【默认Web站点】，单击鼠标右键，在下拉菜单中选择【新建】&#8594;【虚拟目录】选项，如图7所示。创建一个虚拟目录，名为"jakarta"，对应的实际文件资源路径应该是isapi_redirect.dll文件所在的目录/bin。</p>
<p style="text-indent: 2em" align="left">?/P&gt;</p>
<div align="left"><img style="border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid; border-bottom: black 1px solid" src="http://industry.ccidnet.com/col/attachment/2005/6/449127.jpg"  alt="" /></div>
<p style="text-indent: 2em" align="left">?/P&gt;</p>
<div align="left">图7 创建虚拟目录</div>
<p style="text-indent: 2em" align="left">（3）修改刚刚创建的jakarta虚拟目录的属性，将其执行许可权限设为"脚本和可执行程序"，如图8所示。这步操作很重要，它保证在注册表中设置的extension_uri对应的/jakarta/isapi_redirect.dll可以被执行。如果漏掉这步操作，会导致无法访问Tomcat中的Servlet/JSP组件。</p>
<p style="text-indent: 2em" align="left">?/P&gt;</p>
<div align="left"><img style="border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid; border-bottom: black 1px solid" src="http://industry.ccidnet.com/col/attachment/2005/6/449129.jpg"  alt="" /></div>
<p style="text-indent: 2em" align="left">?/P&gt;</p>
<div align="left">图 8 修改jakarta虚拟目录的执行许可权限</div>
<div align="left">&nbsp;</div>
<div align="left">四.把JK插件作为筛选器加入到IIS<br />
<br />
在IIS中加入名为"jakarta"的虚拟目录后，还应该把JK插件作为ISAPI筛选器加入到IIS中，以下是操作步骤。<br />
<br />
（1）在Internet信息服务主窗口的目录树中选择IIS主机节点，单击鼠标右键，在下拉菜单中选择【属性】选项，如图22-9所示。在出现的窗口中单击【编辑】按钮，打开IIS主机的属性窗口，如图10所示。<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</div>
<div align="left"><img style="border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid; border-bottom: black 1px solid" src="http://industry.ccidnet.com/col/attachment/2005/6/449131.jpg"  alt="" /></div>
<div align="left"><br />
<br />
&nbsp;</div>
<div align="left">图9 配置IIS主机的属性</div>
<div align="left"><br />
<br />
&nbsp;</div>
<div align="left"><img style="border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid; border-bottom: black 1px solid" src="http://industry.ccidnet.com/col/attachment/2005/6/449133.jpg"  alt="" /></div>
<div align="left"><br />
<br />
&nbsp;</div>
<div align="left">图10 IIS主机的属性窗口</div>
<div align="left"><br />
<br />
（2）在主属性的WWW服务区域单击【编辑】按钮，打开WWW服务主属性窗口，增加新的ISAPI筛选器，筛选器名称为"jakarta"，可执行文件为/bin /isapi_redirect.dll，如图11所示。<br />
<br />
</div>
<div align="left"><img style="border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid; border-bottom: black 1px solid" src="http://industry.ccidnet.com/col/attachment/2005/6/449135.jpg"  alt="" /></div>
<div align="left"><br />
<br />
&nbsp;</div>
<div align="left">图11 增加新的ISAPI筛选器</div>
<div align="left"><br />
<br />
（3）重新启动IIS服务器，如果配置正常，在WWW服务主属性的ISAPI筛选器子窗口中，新加的jakarta筛选器的状态应该变为绿色向上的箭头，如图12所示。<br />
<br />
</div>
<div align="left"><img style="border-right: black 1px solid; border-top: black 1px solid; border-left: black 1px solid; border-bottom: black 1px solid" src="http://industry.ccidnet.com/col/attachment/2005/6/449137.jpg"  alt="" /></div>
<div align="left"><br />
<br />
&nbsp;</div>
<div align="left">图12 jakarta筛选器被装载</div>
<div align="left">&nbsp;</div>
<div align="left">&nbsp;</div>
<div align="left">五.&nbsp;测试配置<br />
<br />
重启Tomcat服务器和IIS服务器，通过浏览器访问http://localhost/index.jsp。如果出现Tomcat的默认主页，说明配置已经成功。此外，如果在Tomcat服务器上已经发布了helloapp应用，可以访问http://localhost/helloapp/index.htm；如果正常返回helloapp应用的index.htm网页，说明配置已经成功；如果配置有误，可以查看JK插件生成的日志信息，它有助于查找错误原因。在注册表中设定该日志文件的存放位置为/logs/isapi.log。<br />
<br />
小 结<br />
<br />
上面介绍了通过JK插件来实现Tomcat与Apache以及IIS服务器集成的步骤。Tomcat提供了专门的JK插件来负责Tomcat和HTTP服务器的通信。JK插件安置在对方HTTP服务器上。当HTTP服务器接收到客户请求时，它会通过JK插件来过滤URL，JK插件根据预先配置好的URL映射信息，来决定是否要把客户请求转发给Tomcat服务器处理。Tomcat与Apache以及IIS服务器集成的异同之处参见下表。<br />
<br />
Tomcat与Apache以及IIS服务器集成的异同之处<br />
<br />
</div>
<div align="left">
<table border="1">
    <tbody>
        <tr>
            <td></td>
            <td>Tomcat与Apache集成</td>
            <td>Tomcat与IIS集成</td>
        </tr>
        <tr>
            <td>JK插件的工作文件</td>
            <td>workers.properties文件</td>
            <td>workers.properties文件</td>
        </tr>
        <tr>
            <td>设置JK插件属性</td>
            <td>在Apache的配置文件httpd.conf中设置</td>
            <td>在注册表中设置</td>
        </tr>
        <tr>
            <td>设置URL映射信息</td>
            <td>在Apache的配置文件httpd.conf中设置</td>
            <td>在uriworkermap.properties文件中设置</td>
        </tr>
        <tr>
            <td>加载JK插件</td>
            <td>把JK插件拷贝到/lib目录下， 在Apache的配置文件httpd.conf中设置 LoadModule属性</td>
            <td>把JK插件所在的目录作为IIS的虚拟目录，把JK插件作为ISAPI筛选器加入到IIS中</td>
        </tr>
    </tbody>
</table>
</div>
<div class="invisible" id="reference">文章引用自：<a href="" target=" href_cetemp="  ?></a> http://blog.sina.com.cn/s/blog_4b81125f010008xu.html</div>
 <img src ="http://www.blogjava.net/scansoft/aggbug/161633.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/scansoft/" target="_blank">野猫</a> 2007-11-19 15:42 <a href="http://www.blogjava.net/scansoft/articles/161633.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>