现在的位置: 首页 > 综合 > 正文

WindowsServer/XP/7环境下IIS整合tomcat使得IIS支持jsp完整教程

2018年05月19日 ⁄ 综合 ⁄ 共 6577字 ⁄ 字号 评论关闭

因为公司之前的程序是用asp.NET编写,现在部分程序需要用java语言开发。因此需求来了,就是当iis遇到jsp请求时能将请求转发给tomcat编译。我花了一些时间在win7和win2003/winXP系统中都整合成功了,都达到了我要的目的。具体教程如下:

1.WindowsServer2003/XP系统下iis6和tomcat6的整合。

软件环境:

win2003/winXP

jdk1.6

tomcat6.0

iis6

JK isapi_redirect-版本号.dll

1.安装IIS 
控制面板--> 添加删除程序 --> 添加删除windows组件 



2.测试IIS 



3.安装java环境,配置环境变量,具体不赘述。
4.安装tomcat (安装版和解压缩版都ok)
启动tomcat 
测试8080端口 



5.基本工作完成 下面我们进行整合 
安装isapi_redirect-1.2.14(此处用的版本是1.2.14,文章结尾提供下载地址) 当然也可以直接使用isapi_redirect-1.2.14.dll + 配置文件手动编写,不过对于首次安装还是建议使用安装文件,防止配置文件书写产生误差导致整合不成功。 

 

一路next 
安装目录是 

Java代码  收藏代码
  1. C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector  


6.打开iis的管理界面 
查看默认站点是否存在 ,具体如下图

 

选中其中的jakarta的虚拟目录,并查看属性中 是否存在jakarta的筛选器。至于向上的绿色箭头可能没有(网上很多都指出要求由此,实际上只有配置之后首次访问的时候,才进行加载)只要不是红色就可以。 


注意,如果属性中没有jakarta筛选器,则执行下面两步操作。


    a.添加筛选器 名称jakarta 文件地址 C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector\bin\isapi_redirect.dll 
     b.选中网站,创建虚拟目录 

 

别名 jakarta (必须) 路径 C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector\bin\ 

如果已经存在了jkarta筛选器,则a,b两个步骤省略。
7.配置访问权限 

 
不要忘记 运行脚本 执行 勾选 
ok 
8.我们在tomcat app下面随便建立个工程 我这里是目录名0431la 
修改配置文件 
C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector\conf\uriworkermap.properties 

Java代码  收藏代码
  1. # uriworkermap.properties - IIS  
  2. #  
  3. # This file provides sample mappings for example wlb  
  4. # worker defined in workermap.properties.minimal  
  5. # The general syntax for this file is:  
  6. # [URL]=[Worker name]  
  7.   
  8. /admin/*=wlb  
  9. /manager/*=wlb  
  10. /jsp-examples/*=wlb  
  11. /servlets-examples/*=wlb  
  12.   
  13. # Optionally filter out all .jpeg files inside that context  
  14. # For no mapping the url has to start with exclamation (!)  
  15.   
  16. !/servlets-examples/*.jpeg=wlb  
  17.   
  18. #  
  19. # Mount jkstatus to /jkmanager  
  20. # For production servers you will need to  
  21. # secure the access to the /jkmanager url  
  22. #  
  23. /jkmanager=jkstatus  
  24. /0431la/*=wlb  

/0431la/*的意思是当路径中包涵/04311a/时所有的请求转发给tomcat容器处理。
我们重启tomcat 和 iis 并访问测试 
iis的重启可以通过鼠标右键我的电脑 --> 管理 进行重启 

 


接下来我们可以进行测试 





ok了 虽然这不是我们的最终结果 但是至少我们之前配置的没有问题了 

下面我们进行虚拟主机的配置 
9.我们把0431la目录放到c盘根目录并配置tomcat的虚拟主机 

Java代码  收藏代码
  1.  <Host name="www.0431.la" debug="0" appBase="c:\0431la" unpackWARs="true" autoDeploy="true">  
  2. <Context path="" docBase="c:\0431la" debug="0" reloadable="true"/>  
  3. </Host>  


10.在iis下面配置虚拟主机的映射目录 
并添加jakarta虚拟目录 和 isapi筛选 配置过程可参考第五步 

11.修改配置文件 
C:\Program Files\Apache Software Foundation\Jakarta Isapi Redirector\conf\uriworkermap.properties 

Java代码  收藏代码
  1. # uriworkermap.properties - IIS  
  2. #  
  3. # This file provides sample mappings for example wlb  
  4. # worker defined in workermap.properties.minimal  
  5. # The general syntax for this file is:  
  6. # [URL]=[Worker name]  
  7.   
  8. /admin/*=wlb  
  9. /manager/*=wlb  
  10. /jsp-examples/*=wlb  
  11. /servlets-examples/*=wlb  
  12.   
  13. # Optionally filter out all .jpeg files inside that context  
  14. # For no mapping the url has to start with exclamation (!)  
  15.   
  16. !/servlets-examples/*.jpeg=wlb  
  17.   
  18. #  
  19. # Mount jkstatus to /jkmanager  
  20. # For production servers you will need to  
  21. # secure the access to the /jkmanager url  
  22. #  
  23. /jkmanager=jkstatus  
  24. /0431la/*=wlb  
  25. /*.jsp=wlb  


以上配置目的是让jsp请求交由tomcat处理 

重启iis 和 tomcat 看看我们的成果 



我们可以发现jsp请求完全正常解析了。 

Java代码  收藏代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>  
  2. <%  
  3. String path = request.getContextPath();  
  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  
  5. %>  
  6.   
  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  8. <html>  
  9.   <head>  
  10.     <base href="<%=basePath%>">  
  11.       
  12.     <title>My JSP 'index.jsp' starting page</title>  
  13.     <meta http-equiv="pragma" content="no-cache">  
  14.     <meta http-equiv="cache-control" content="no-cache">  
  15.     <meta http-equiv="expires" content="0">      
  16.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  17.     <meta http-equiv="description" content="This is my page">  
  18.     <!--  
  19.     <link rel="stylesheet" type="text/css" href="styles.css">  
  20.     -->  
  21.   </head>  
  22.     
  23.   <body>  
  24.     This is my JSP page. <br>  
  25.   </body>  
  26. </html>  


该jsp是myeclipse工程自动生成的。

isapi_redirect-1.2.14.dll下载

该教程参考的帖子:

http://bbs.csdn.net/topics/240015983

http://llying.iteye.com/blog/496541

2.Windows7系统下iis7和tomcat6的整合。


需要的软件资源

1.win7 64位 (我当时用的系统环境,32位原理相同)

2.jdk1.6

3.tomcat6.0

4.JK isapi_redirect-版本号.dll

整合步骤如下:

说明:在win2003和winXP中使用的是安装JK
isapi_redirect-版本号.dll的方式,下面使用手工配置的方式在win7下实现iis7+tomcat6的整合。

现在开始:

注:{tomcat_home}为tomcat安装目录。

        1. 在{tomcat_home}/conf下建立workers.properties文件,内容如下:

[html] view
plain
copy

  1. # worker.list的值为对应的tomcat的值  
  2. worker.list=geloinWorker  
  3. # tomcat的server.xml中有<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />,以下的三个值分别对应这里的属性  
  4. worker.geloinWorker.type=ajp13  
  5. worker.geloinWorker.host=localhost  
  6. worker.geloinWorker.port=8009  


        2. 在{tomcat_home}/conf下建立uriworkermap.properties文件,内容如下:

[html] view
plain
copy

  1. # 重定向规则,以下意思为“当网页地址为....../examples/...”时重写向到workers.properties中规定的tomcat中  
  2. /examples/*=geloinWorker  
  3. /*.jsp=geloinWorker  

        3. 从http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/下下载tomcat-connectors-1.2.37-windows-i386-iis.zip,并将解压后的isapi_redirect.dll放置在{tomcat_home}/jk下(需要事先在tomcat根目录下面建立jk文件夹),并在该目录下建立isapi_redirect.properties,内容如下:

[html] view
plain
copy

  1. extension_uri=/jakarta/isapi_redirect.dll  
  2. log_file=d:/work/download/apache-tomcat-6.0.33/logs/isapi_redirect.log  
  3. log_level=info  
  4. worker_file=d:/work/download/apache-tomcat-6.0.33/conf/workers.properties  
  5. worker_mount_file=d:/work/download/apache-tomcat-6.0.33/conf/uriworkermap.properties  

        注意:该处所指的所有文件,例如isapi_redirect.log,workers.properties
uriworkermap.properties都是手工创建的, 
都必须创建后再在isapi_redirect.properties中进行配置


   4. 在“Default Web Site”下添加“ISAPI”筛选器,可执行文件为{tomcat_home}/jk/isapi_redirect.dll:

        5. 右键点击“Default Web Site”,建立虚拟目录“jakarta”(必须为此名字),目标地址指向{tomcat_home}/jk:

        6. 点击“jakarta”,在功能视图中找到“处理映射程序”并双击之,在右侧找到编辑功能权限,全部选中:

        7. 点击计算机名,在功能视图中找到“ISAPI和CGI限制”,双击之:

        8. 在右侧找到“添加”,添加ISAPI和CGI限制,路径为isapi_redirect.dll的路径:

        至此,iis和tomcat整合完毕,接下来可使用iis访问jsp页面,不过需要提示的是,请注意uriworkermap.properties中设定的重定向规则,只有符合规则的网页才会被重定向到tomcat中。

配置完成后,可能会遇到在tomcat中的项目可以访问,但是图片,css,js等文件无法加载以及访问a.jsp页面时提示下载等等问题。这是因为uriworkermap.properties中设定的重定向规则没有设定好。


比如现在在tomcat webapps下面有个项目springmvc001,则uriworkermap.properties中配置如下:

  1. /springmvc001/*=geloinWorker  
  2. /*.jsp=geloinWorker  


特别注意转发规则的配置,因为如果没有配置好转发规则,jsp项目图片等静态资源无法访问。
常见配置规则说明:

uriworkermap.properties
# 当前域名下上下文路径为你JSP项目名称myjspapp的请求,转发给geloinWorker工作站处理   
/myjspapp/*=geloinWorker  
/myjspapp=geloinWorker  

# 当前域名下的所有请求都转发给geloinWorker工作站处理  
# /*=geloinWorker  
# 当前域名下,所有.jsp的请求都转发给geloinWorker工作站处理  
# /*.jsp=geloinWorker 
 
# 当前域名下,除了.html的请求,其他都转发给geloinWorker工作站处理  
# !/*.html=geloinWorker 


参考文章
http://blog.csdn.net/geloin/article/details/7668751#comments

http://www.cnblogs.com/zhwl/archive/2012/12/19/2824407.html


资源下载: win7下面已经配置好的tomcat打包下载http://pan.baidu.com/s/1pJv6HGR






抱歉!评论已关闭.