.net集成、iis、iis与tomcat集成,将报表应用部署到IIS服务器上、去端口、iis集成
1. 问题描述
FR报表部署在Web服务器如tomcat中,.net系统部署在IIS中,我们通过页面集成来实现在.net系统中调用报表。
这个时候若最终用户在浏览器中查看页面源代码或者浏览器状态栏中,会看到报表访问的完整路径如http://ip:端口/应用名......,此时服务器的信息就完全暴露给用户了。
为保证安全性,需要屏蔽掉服务器的端口号,就需要实现IIS与tomcat的无缝集成。
2. 实现步骤
2.1 示例环境
操作系统:Windows2003
报表环境:JDK6.5+Tomcat5.5+FineReport7.0
.net环境:IIS6.0
注:确保IIS和Tomcat服务器独立都能正常运行,如IIS的http://localhost和tomcat的http://localhost:8080/都能访问;
tomcat不要安装在C盘下,会遇到权限问题;
整个配置过程停止iis服务,配置好后启动;
2.2 下载筛选器
需要有筛选器使Tomcat和IIS进行关联,可以从官网下载最新版本isapi_redirect-1.2.9.dll放到Tomcat服务器下,在%Tomcat_HOME%\bin\目录下新建文件夹jk,把下载的isapi_redirect-1.2.9.dll筛选器拷贝到jk文件夹中,如下图: 2.3 创建workers.properties文件
在%Tomcat_HOME%/conf目录下,创建workers.properties文件,通过该文件将jdk及tomcat的目录告诉系统。具体内容如下:
注:worker.worker1.port=8009,8009端口是iis与tomcat ajp13 协议的通信端口。tomcat中可配置,workers.properties务必要与tomcat设置保持一致。
2.4 创建uriworkermap.properties文件
在%Tomcat_HOME%/conf目录下,创建uriworkermap.properties文件,在该文件中,写明哪些文件、哪些路径使用Tomcat提供服务,而不是通过IIS提供服务。
可能的设置有:
/*=worker1#所有访问都转发到tomcat中;/*.jsp=worker1#所有*.jsp的才向tomcat转发; /jsp-examples/*=worker1#所有/jsp-examples/*工程下的内容都进行转发,!/*.gif=worker1 #所有的gif文件都不向tomcat转发,而由IIS处理。
2.5 导入注册表文件xzy.reg
新建xzy.reg修改注册表内容如下:
注:isapi_redirect-1.2.9.dll文件名和实际应用的dll文件名必须一致!推荐不加版本号如“isapi_redirect.dll"。
另:注册表中设置的"log_file"="B:\\Tomcat 5.5\\logs\\isapi.log "十分有用,查看日志能协助解决问题。
双击运行这个文件,导入注册表中。
2.6 对IIS进行配置
jakarta是跟注册表里面定义的筛选器目录的名字相同如"extension_uri"="/jakarta/isapi_redirect-1.2.9.dll",这个虚拟目录要指向isapi_redirect-1.2.9.dll所在的目录,并且设置为可执行IsApi,如下步骤:
右击默认网站,选择新建虚拟目录
弹出对话框,点击下一步,在别名里面输入默认名:jakarta,点击下一步,选择连接器isapi_redirect-1.2.9.dll所在的目录即B:\Tomcat5.5\bin\jk,如下图:
点击下一步,勾选执行(如ISAPI应用程序或CGI)(E)后,点击下一步完成即可。
点击默认网站,选择属性,修改对应执行权限,在主目录下把对应权限换成脚本和可执行文件。
点击ISAPI筛选器>添加,弹出如下对话框,输入筛选器名称:isAPI,可执行文件地址选择isapi_redirect-1.2.9.dll所在的目录,点击确定。
把对应Web服务器状态改为允许,如下图:
2.7 重启IIS跟Tomcat服务器
重新启动IIS服务器,选择iis所在服务右击选择所有任务,重新启动IIS,如下图:
会有如下对话框弹出,点击确定,便重新启动IIS服务器了。
重启Tomcat,浏览器中输入http://localhost/index.jsp就可访问Tomcat主页了,或部署成功报表后可访问http://localhost/WebReport/ReportServer?op=fr_platform可访问报表管理平台,则表明IIS与Web服务器的集成成功啦!
注:此文档中除了注册表xzy.reg的文件名是可以修改的,其余的名称是不可以修改的。